Ответ 1
Вот что сработало для меня: (в вашем проекте build.gradle)
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
Я попытался добавить в корневой файл 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"
}
}
Вы должны установить путь к загрузке для JDK 1.8 и выше для таких вещей, как Unsafe и sun.swing. * classes. Исправьте исходный код, особенно для последнего, потому что Jigsaw Java 9, реализация модульной реализации JRE и, наконец, сделает эти методы недоступными (!). Считайте себя предупрежденным.
Я не уверен, что проблема заключалась в использовании параметра конфигурации subprojects
Gradle, но вы использовали синтаксис:
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"
}
}
}
Если вы хотите добавить только одну опцию (вы обычно добавляете больше), внутри задачи JavaCompile
вам просто нужно добавить:
options.compilerArgs << "-Xlint:unchecked"