ルートbuild.gradle
ファイルに次を追加しようとしました。
subprojects {
gradle.projectsEvaluated {
tasks.withType(Compile) {
options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
}
}
}
しかし、私はこれを取得しています:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'.
> invalid flag: -Xlint:unchecked -Xlint:deprecation
私は何を間違えていますか?
これは私のために働いたものです:(あなたのプロジェクトのbuild.gradleで)
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
免責事項:この回答には10以上の賛成票がありますが、のコンテキストでの問題には対処しませんAndroidプロジェクト。ただし、GoogleはAndroid以外のプロジェクトのコンテキストでこの質問を見つけます。したがって、私はそれらの人のためにこの答えを保持します。
JavaCompile によると、以下が解決策のようです。
compileJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
テストケースで使用する場合は、compileTestJava
を使用します
compileTestJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
これをbuild.gradleファイル(ルートディレクトリ)に配置します。
allprojects { // Projects
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
設定する別のコンパイル引数がありました。次は私のために働く。
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-XDignore.symbol.file"
options.bootClasspath = "$System.env.Java_HOME/jre/lib/rt.jar"
}
}
UnsafeやSun.swing。*クラスなどのJDK 1.8以上のブートクラスパスを設定する必要があります。特に後者のソースコードを修正します。JREのモジュール化実装であるJigsaw Java 9が最終的にこれらのメソッドにアクセスできなくなるためです(!)。自分で警告してください。
Gradle subprojects
構成パラメーターの使用に関する問題かどうかはわかりませんが、使用した構文は次のとおりです。
options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
これは私のために働いた:
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs += [
'-Xlint:unchecked', // Shows information about unchecked or unsafe operations.
'-Xlint:deprecation', // Shows information about deprecated members.
]
}
}
}
または
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
オプションを1つだけ追加する場合(通常はさらに追加します)、タスクJavaCompile
内に追加する必要があるのは次のとおりです。
options.compilerArgs << "-Xlint:unchecked"