7

既存のプロジェクトの代替ビルド システムとして 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

4

1 に答える 1

2

Javadoc に関しては、次のように動作する可能性があります。

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

Java のコンパイルに関しては、最近の Gradle バージョン (1.2 など) で必要であるかどうかoptions.fork = trueを 知っておくとよいでしょう。options.forkOptions.executable = 'javac'はいの場合は、http://forums.gradle.org で問題を報告してください

于 2012-09-23T18:44:53.140 に答える