我正在尝试提供 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 编译,最好知道最近的 Gradle 版本是否仍然需要 options.fork = true
和 options.forkOptions.executable = 'javac'
(例如 1.2)。如果是,请在 http://forums.gradle.org 提出问题.
关于java - 在 gradle 中将参数传递给编译器和 javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554829/