Kri*_*son 10 ant yui-compressor jenkins
在我们的Jenkins CI服务器上运行的ant构建任务期间,我们使用YUI压缩器压缩我们的javascript(和css文件).但是,确定哪些js文件YUI压缩器有错误是非常困难的.我们看到了很多类似的东西:
[minify-js] [ERROR] 3:35:unterminated string literal [minify-js] [minify-js] [ERROR] 3:35:syntax error [minify-js] [minify-js] [ERROR] 4:8:syntax error [minify-js] [minify-js] [ERROR] 1:0:Compilation produced 3 syntax errors. [minify-js] org.mozilla.javascript.EvaluatorException: Compilation produced 3 syntax errors. [minify-js] at com.yahoo.platform.yui.compressor.YUICompressor$1.runtimeError(YUICompressor.java:135) [minify-js] at org.mozilla.javascript.Parser.parse(Parser.java:410) [minify-js] at org.mozilla.javascript.Parser.parse(Parser.java:355) [minify-js] at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312) [minify-js] at com.yahoo.platform.yui.compressor.JavaScriptCompressor.(JavaScriptCompressor.java:533) [minify-js] at com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:112) [minify-js] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [minify-js] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [minify-js] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [minify-js] at java.lang.reflect.Method.invoke(Method.java:616) [minify-js] at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:20) [minify-js] Result: 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>
Run Code Online (Sandbox Code Playgroud)
不是Ant或YUI压缩器的专家,有什么我们可以做的,以便发生错误的文件名在某处输出?
我不知道yuicompressor如何工作,我认为它一次只能在一个文件上工作.
如果这是真的,你可以用ant-contrib来做.您需要先安装ant-contrib.
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${global.dir}/bin_data/ant-contrib-0.6.jar"/>
<for param="file">
<path>
<fileset dir="${global.dir}/" includes="**/*.js">
<exclude name="*.min.js" />
</fileset>
</path>
<sequential>
<echo>youcompressor for @{file}</echo> <!-- Will output each file and help debugging -->
<exec executable="yuicompressor"> <!-- I took the args from the official documentation-->
<arg value="--type=js" />
<arg value="-o" />
<arg value="'.js$:-min.js'" />
<arg value="@{file}" />
</exec>
</sequential>
</for>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4713 次 |
最近记录: |