我正在使用闭包编译器jar在Windows环境中的r.js优化中进行缩小。
使用ANT exec运行此任务时,出现非法字符错误,但在使用 .bat 文件运行相同任务时,它正常工作。
ANT执行任务
<target name="do-optimization" description="It will do optimization using r.js.">
<exec dir="." executable="java" failonerror="true">
<arg value="-jar" />
<arg path="${src.dir}/r-js/lib/rhino/js.jar" />
<arg path="${src.dir}/r-js/lib/closure/compiler.jar" />
<arg path="${src.dir}/r-js/dist/r.js" />
<arg value="-o"/>
<arg path="${src.dir}/r-js/build.js" />
</exec>
</target>
控制台输出
do-optimization:
[exec] js: "C:\workspace\test\ui\r-js\lib\closure\compiler.jar", line 2: illegal character
[exec] js: ╝MOC ♦ META-INF/■╩ PK♥♦
[exec] js: ^
[exec] js: "C:\workspace\test\ui\r-js\lib\closure\compiler.jar", line 1: Compilation produced 1 syntax errors.
[exec]
BUILD FAILED
optimize.bat
java -classpath "r-js\lib\rhino\js.jar";"r-js\lib\closure\compiler.jar" org.mozilla.javascript.tools.shell.Main r-js/dist/r.js -o build.js
答案 0 :(得分:0)
似乎Ant脚本与批处理文件的调用方式相同java
。 exec
任务正在调用以下命令:
java -jar ${src.dir}/r-js/lib/rhino/js.jar ${src.dir}/r-js/lib/closure/compiler.jar ${src.dir}/r-js/dist/r.js -o ${src.dir}/r-js/build.js
明显不同于.bat文件中的那个,即jar没有正确地添加到类路径中。
在Ant中,您可以简单地使用java
任务来运行Java类。请尝试使用以下内容:
<java classname="org.mozilla.javascript.tools.shell.Main" failonerror="true">
<arg path="${src.dir}/r-js/dist/r.js" />
<arg value="-o"/>
<arg path="${src.dir}/r-js/build.js" />
<classpath>
<pathelement location="${src.dir}/r-js/lib/rhino/js.jar" />
<pathelement location="${src.dir}/r-js/lib/closure/compiler.jar" />
</classpath>
</java>