J'ai essayé d'ajouter ce qui suit au fichier racine build.gradle
:
subprojects {
gradle.projectsEvaluated {
tasks.withType(Compile) {
options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
}
}
}
Mais je reçois ceci:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'.
> invalid flag: -Xlint:unchecked -Xlint:deprecation
Qu'est-ce que je fais mal?
C'est ce qui a fonctionné pour moi: (Dans le build.gradle de votre projet)
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
Avertissement: Même si cette réponse a plus de 10 votes positifs, elle ne résout pas le problème dans le contexte d'un projet Android. Cependant, Google trouve cette question dans le contexte de projets non-Android. Ainsi, je garde cette réponse pour ces gars.
Selon JavaCompile , la solution suivante semble être la solution:
compileJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
Si vous voulez qu'il en soit ainsi pour les cas de test, utilisez compileTestJava
compileTestJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
J'avais un argument de compilation différent à définir. Ce qui suit fonctionne pour moi.
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-XDignore.symbol.file"
options.bootClasspath = "$System.env.Java_HOME/jre/lib/rt.jar"
}
}
Vous devez définir le chemin d'accès aux classes de démarrage pour JDK 1.8 et versions supérieures, par exemple pour les classes Unsafe et Sun.swing. *. Corrigez le code source spécialement pour ce dernier, car Jigsaw Java 9, la nouvelle implémentation de la modularité du JRE, rendra ces méthodes inaccessibles (!). Considérez-vous prévenu.
Mettez ceci dans votre build.gradle fichier (répertoire racine):
allprojects { // Projects
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
Je ne suis pas sûr que le problème concerne l'utilisation du paramètre de configuration Gradle subprojects
, mais la syntaxe que vous avez utilisée:
options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
Cela a fonctionné pour moi:
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs += [
'-Xlint:unchecked', // Shows information about unchecked or unsafe operations.
'-Xlint:deprecation', // Shows information about deprecated members.
]
}
}
}
ou
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
Si vous voulez seulement ajouter une option (vous en ajouterez normalement plus), dans la tâche JavaCompile
, il vous suffit d'ajouter:
options.compilerArgs << "-Xlint:unchecked"
Vous pouvez trouver plus d’informations sur Lint here et here .