如何从 gradle 正确执行 ant.java?
我正在尝试调用 jar,但是当我运行不带参数的命令时,我看不到任何输出,而当我使用参数运行时,我收到以下错误:
[ant:java] The args attribute is deprecated. Please use nested arg elements.
[ant:java] Java Result: 1
How do I invoke ant.java 以这样的方式我可以看到输出并且可以传递参数?
task compressJs(){
ant.java(jar:"lib/yuicompressor-2.4.6.jar",fork:true,args:['js/file.js', '-o', 'build/js/file.js'])
}
I'm trying to invoke a jar, but I don't see any output when I run the command without args, and when I do run with args, I get the following error:
[ant:java] The args attribute is deprecated. Please use nested arg elements.
[ant:java] Java Result: 1
How do I invoke ant.java in such a way that I see output and can pass arguments?
task compressJs(){
ant.java(jar:"lib/yuicompressor-2.4.6.jar",fork:true,args:['js/file.js', '-o', 'build/js/file.js'])
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您的 args 应该这样指定:
几乎与您对 ant 所做的相同,只是使用 Groovy 样式标记生成器而不是 XML。
默认情况下,您的输出将显示在屏幕上。如果要重定向它,请设置“输出”属性。
Your args should be specified like this:
Pretty much it is the same as you would do with ant except using the Groovy style markup builder instead of XML.
By default your output will go to the screen. If you want to redirect it, set the 'output' property.
正如我之前所说,最好使用 JavaExec 任务。要执行 Jar,您可以执行以下操作:
http://issues.gradle.org/browse 中的注释/GRADLE-1274 还解释了如何从
ant.java
捕获输出,但使用JavaExec
是更好的解决方案。As I said before, it's best to use the
JavaExec
task. To execute a Jar, you can do:The comments in http://issues.gradle.org/browse/GRADLE-1274 also explain how to capture output from
ant.java
, but usingJavaExec
is the better solution.要获取输出,请在 gradle 上设置 --info 标志或在 ant.java 上设置 outputproperty:
To get the output set the --info flag on gradle or set the outputproperty on ant.java:
Ant 任务需要在执行阶段调用,而不是配置阶段:
您还可以使用 Gradle 的 JavaExec 任务。请参阅文档。
The Ant task needs to be invoked in the execution phase, not the configuration phase:
You could also use Gradle's JavaExec task. See the documentation.
除了 Chris Dail 的回答之外,您还可以使用类似这样的内容,
这允许人们在一行中声明所有参数,与 ANT 中的用法非常相似。
In Addition to Chris Dail's answer , you can also use something like this
This allows one to declare all the arguments in a single line, very similar to the usage in ANT.