Closure 编译器命令行似乎不适用于最新版本

Closure compiler command line doesn't seem to work with latest version

我们的源代码使用闭包编译器来缩小 javascript。最近我的任务是将它升级到最新版本。当我这样做时,javascript 组件将不再正确编译。我们之前使用的版本是 v20131014。我尝试了最新的(2016年2月)以及之前的3、4版本,但都遇到了同样的问题。

我们使用编译器的方式是从命令行,在一个 Groovy 文件中,该文件对 JavaScript:

   ...
     def command = "java -jar $compiler --js $orderedDependencies --js_output_file $minFilename --create_source_map $mapFilename --compilation_level WHITESPACE_ONLY --source_map_format=V3 "
     command.execute(null as List, outputDir).waitFor()
   ....

当我 运行 这个脚本在执行时挂起。当我 运行 命令行上的命令(用实际值替换您在上面看到的变量)时,它工作正常,没有问题。没有来自构建的日志消息表明出了什么问题;版本 v20131014 没有问题。

2013 年和 2016 年之间可能发生的变化可能导致此问题的任何想法?

它可能会写入更多输出,因此阻塞了标准输入管道之一

你应该对输出做些什么。

这会将其打印到控制台

command.execute(null as List, outputDir)
       .waitForProcessOutput(System.out, System.err)