Saya mencoba menambahkan yang berikut ini ke build.gradle
file root :
subprojects {
gradle.projectsEvaluated {
tasks.withType(Compile) {
options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
}
}
}
Tapi saya mendapatkan ini:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'.
> invalid flag: -Xlint:unchecked -Xlint:deprecation
Apa yang saya lakukan salah?
"-Xlint:unchecked" << "-Xlint:deprecation"
dan berfungsi untuk keduanya :) Jika Anda ingin membuat jawaban dengan ini, saya akan dengan senang hati menandainya sebagai diterima.Jawaban:
Inilah yang berhasil untuk saya: (dalam proyek Anda build.gradle)
allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
sumber
allprojects
penutupan.-Xlint:unchecked
pengaturannya.Menurut JavaCompile , berikut ini tampaknya menjadi solusi:
compileJava { options.encoding = 'UTF-8' options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
Jika Anda menginginkannya untuk kasus uji, gunakan
compileTestJava
compileTestJava { options.encoding = 'UTF-8' options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
sumber
gradle.build
perginya?java
plugin dibuild.gradle
file mereka tetapi tidak untuk modul yang menerapkan plugincom.android.application
orcom.android.library
.Letakkan ini di file build.gradle Anda (direktori root):
allprojects { // Projects gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.encoding = 'UTF-8' options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
sumber
Untuk semua orang yang menggunakan
gradle.kts
berikut ini untuk mencocokkan denganbuild.gradle
file sederhanabuild.gradle.kts
afterEvaluate { tasks.withType(JavaCompile::class) { options.compilerArgs.add("-Xlint:unchecked") options.compilerArgs.add("-Xlint:deprecation") } }
build.gradle
gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } }
sumber
Saya memiliki argumen kompilasi yang berbeda untuk ditetapkan. Berikut ini bekerja untuk saya.
gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-XDignore.symbol.file" options.bootClasspath = "$System.env.JAVA_HOME/jre/lib/rt.jar" } }
Anda harus menyetel jalur kelas boot untuk JDK 1.8 dan yang lebih baru untuk hal-hal seperti kelas Unsafe dan sun.swing. *. Perbaiki kode sumber terutama untuk yang terakhir, karena Jigsaw Java 9, implementasi modularitas yang akan datang untuk JRE, akhirnya akan membuat metode ini tidak dapat diakses (!). Anggap diri Anda diperingatkan.
sumber
Saya tidak yakin masalahnya adalah tentang penggunaan
subprojects
parameter konfigurasi Gradle , tetapi sintaks yang Anda gunakan:options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
Ini berhasil untuk saya:
subprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs += [ '-Xlint:unchecked', // Shows information about unchecked or unsafe operations. '-Xlint:deprecation', // Shows information about deprecated members. ] } } }
atau
subprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
Jika Anda hanya ingin menambahkan satu opsi (biasanya Anda akan menambahkan lebih banyak), di dalam tugas
JavaCompile
Anda hanya perlu menambahkan:options.compilerArgs << "-Xlint:unchecked"
Anda dapat menemukan informasi lebih lanjut tentang Lint di sini dan di sini .
sumber
Untuk penghentian, Anda sekarang dapat menggunakan ini dalam skrip kotlin gradle, yang lebih baik daripada memodifikasi
compilerArgs
karena ini tipe-aman:tasks.withType<JavaCompile> { options.isDeprecation = true }
sumber