在gradle中将参数传递给编译器和javadoc

我正在尝试将Gradle作为现有项目的替代构建系统。 该项目利用sun.misc.Unsafe导致类似这样的警告:

 warning: Unsafe is internal proprietary API and may be removed in a future release import sun.misc.Unsafe; 

要禁止此警告, -XDignore.symbol.file作为参数传递给当前ant脚本中的javac和javadoc。

为了在Gradle中抑制这些警告,我不得不求助于我觉得“脏”的黑客,我不太习惯。

 apply plugin: 'java' compileJava { // I only managed to get this working when I forked // and passed 'javac' as an executable options.compilerArgs << '-XDignore.symbol.file' options.fork = true options.forkOptions.executable = 'javac' } javadoc { // These get ignored // options.addStringOption('XDignore.symbol.file', null) // options.addStringOption('XDignore.symbol.file') // This one fails the build - I am assuming it's trying to parse '' // options.addStringOption('XDignore.symbol.file') // This works, but it's an ugly hack options.addStringOption('XDignore.symbol.file', '-quiet') } 

当然,必须有一种更为优雅的方式,我不知道如何实现这一目标。

这里( https://gist.github.com/3772416 )是一个更完整的示例,附带一个ant脚本和一个导致问题的示例类。

谢谢

我正在运行Gradle 1.1

 ------------------------------------------------------------ Gradle 1.1 ------------------------------------------------------------ Gradle build time: Tuesday, 31 July 2012 13:24:32 o'clock UTC Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012 Ivy: 2.2.0 JVM: 1.7.0_07 (Oracle Corporation 23.3-b01) OS: Linux 3.2.0-30-generic amd64 

对于压制这些特殊警告,目前看来这是一个合理的蠢蠢欲动。 请参阅 – http://forums.gradle.org/gradle/topics/passing_arguments_to_compiler_and_javadoc?rfm=1

关于Javadoc,以下可能有效:

 javadoc.options.jflags "-XDignore.symbol.file" 

关于Java编译,最好知道options.fork = trueoptions.forkOptions.executable = 'javac'是否仍然需要最近的Gradle版本(例如1.2)。 如果是,请在http://forums.gradle.org上提出问题。