我正在使用闭包编译器 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
优化.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
最佳答案
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>
关于java - 使用 Closure-compiler.jar 使用 ANT 进行 r.js 优化时出现非法字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076840/