在 Jenkins CI 服务器上运行的 ant 构建任务期间,我们使用 YUI 压缩器压缩我们的 javascript(和 css 文件)。但是,很难确定 YUI 压缩器与哪些 js 文件有错误。我们看到了很多类似的东西:
[minify-js] [错误] 3:35:未终止的字符串文字 [缩小-js] [minify-js] [错误] 3:35:语法错误 [缩小-js] [minify-js] [错误] 4:8: 语法错误 [缩小-js] [minify-js] [ERROR] 1:0:编译产生 3 个语法错误。 [minify-js] org.mozilla.javascript.EvaluatorException:编译产生 3 个语法错误。 [minify-js] 在 com.yahoo.platform.yui.compressor.YUICompressor$1.runtimeError(YUICompressor.java:135) [minify-js] 在 org.mozilla.javascript.Parser.parse(Parser.java:410) [minify-js] 在 org.mozilla.javascript.Parser.parse(Parser.java:355) [minify-js] 在 com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312) [minify-js] 在 com.yahoo.platform.yui.compressor.JavaScriptCompressor.(JavaScriptCompressor.java:533) [minify-js] 在 com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:112) [minify-js] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [minify-js] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [minify-js] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [minify-js] 在 java.lang.reflect.Method.invoke(Method.java:616) [minify-js] 在 com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:20) [minify-js] 结果:2
在输出中,但我不知道错误来自数百个 JS 文件中的哪个。我们的 ant 任务如下所示:
<target name="minify-js">
<apply executable="yuicompressor" parallel="false" dest="${global.dir}/" taskname="minify-js" force="true">
<fileset dir="${global.dir}/" includes="**/*.js">
<exclude name="*.min.js" />
</fileset>
<arg value="--type=js" />
<srcfile />
<arg value="-o" />
<targetfile />
<mapper type="identity" />
</apply>
</target>
不是 Ant 或 YUI 压缩器方面的专家,我们有什么办法可以将发生错误的文件名输出到某处?