如何从gradle正确执行ant.java?

Ste*_*all 11 java ant groovy jar gradle

我试图调用一个罐子,但我没有看到任何输出,当我不ARGS运行命令,当我与ARGS跑,我得到以下错误:

[ant:java] The args attribute is deprecated. Please use nested arg elements.
[ant:java] Java Result: 1
Run Code Online (Sandbox Code Playgroud)

如何以这样的方式调用ant.java,我看到输出并可以传递参数?

task compressJs(){
  ant.java(jar:"lib/yuicompressor-2.4.6.jar",fork:true,args:['js/file.js', '-o', 'build/js/file.js'])
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ail 16

你的args应该像这样指定:

ant.java(jar:"lib/yuicompressor-2.4.6.jar",fork:true) {
    arg(value: "js/file.js")
    arg(value: "-o")
    arg(value: "build/js/file.js")
}
Run Code Online (Sandbox Code Playgroud)

除了使用Groovy样式标记构建器而不是XML之外,它几乎与使用ant相同.

默认情况下,您的输出将转到屏幕.如果要重定向它,请设置'output'属性.

  • 输出仍然被压扁. (3认同)

Pet*_*ser 8

正如我之前所说,最好使用该JavaExec任务.要执行Jar,您可以:

task exec(type: JavaExec) { 
    main = "-jar" 
    args relativePath("lib/yuicompressor-2.4.6.jar") 
    args ... // add any other args as necessary 
}
Run Code Online (Sandbox Code Playgroud)

http://issues.gradle.org/browse/GRADLE-1274中的注释也解释了如何捕获输出ant.java,但使用JavaExec是更好的解决方案.