2017-02-16 21 views
0

我把下面的在我的gradle项目文件的末尾:如何在Android项目上设置自定义Java编译器参数?

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

然而,在我的代码,如果我的地方删除@Override注释或删除switch语句,我的Android项目仍在构建。它不应该因错误而失败吗?

+0

我不知道,如果它的行为的Android项目,但对于我们的Java EE构建我实现了这个不同:'compileJava { options.fork =真 options.forkOptions.executable = 'javac的' options.compilerArgs.addAll (['-APackageAcronym ='+ gradle.ext.packageAcronym,'-s',gradle.ext.generatedQueriesDir]) }'因为compileJava是它自己的任务。 – Nico

+0

你把'compileJava'放在根级别吗?如果我这样做在我的情况下,我收到以下错误信息:“错误:无法找到方法compileJava()...” – ADev

+1

是的我把它放在根级别。我认为它是不同的Android gradle构建?只是想给它一个镜头:)对不起,我浪费了你的时间。 – Nico

回答

1

我用Google搜索你的问题,发现这个post 所描述的问题和解决方案如下:

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

原样似乎gradle这个版本是比对Java项目的Android项目的不同,你可以”如我的第一条评论所述,访问任务CompileJava本身。

相关问题