2017-02-16 3 views
0

Je mets ce qui suit à la fin de mon projet fichier gradle:Comment définir des arguments de compilateur Java personnalisés sur un projet Android?

gradle.projectsEvaluated { 
    tasks.withType(JavaCompile) { 
     options.compilerArgs += 
      ['-Xep:MissingOverride:ERROR', 
      '-Xep:MissingCasesInEnumSwitch:ERROR',] 
    } 
} 

Cependant, dans mon code si je retire une annotation @Override quelque part ou supprimer une instruction switch, mon projet Android construit encore. Ne devrait-il pas échouer avec une erreur?

+0

Je ne sais pas si elle se comporte différents pour des projets Android, mais pour notre build Java EE ce que je mis en œuvre: 'compileJava { options.fork = true options.forkOptions.executable = 'javac' options.compilerArgs.addAll (['-APackageAcronym =' + gradle.ext.packageAcronyme, '-s', gradle.ext.generatedQueriesDir]) } 'puisque compileJava est sa propre tâche. – Nico

+0

Mettez-vous 'compileJava' à la racine? Si je le fais dans mon cas, je reçois le message d'erreur suivant: "Erreur: Impossible de trouver la méthode compileJava() ..." – ADev

+1

Oui je l'ai mis au niveau de la racine. Je pense que c'est différent pour les versions de android gradle? J'ai juste pensé à essayer :) Désolé, j'ai perdu ton temps. – Nico

Répondre

1

Je googlé votre problème et trouvé ce post qui décrit votre problème et la solution ressemble à ceci:

allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } } 

semble est la construction gradle est différent pour les projets Android que pour les projets java et vous pouvez » t accéder à la tâche CompileJava lui-même comme indiqué dans mon premier commentaire.