使用 Android Gradle Plugin 编译时如何添加 java 编译器选项?

我有一个 build.gradle 文件,其中包含 dependencies { classpath 'com.android.tools.build:gradle:0.13.3'}apply 插件: 'com.android.application'.

I have a build.gradle file with dependencies { classpath 'com.android.tools.build:gradle:0.13.3'} and apply plugin: 'com.android.application'.

当我进行调试构建时,我得到:

When I do a debug build I get:

gradle clean assembleDebug
:myapp:preBuild
(...)
:myapp:compileDebugJava
Note: C:path	oMyClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

:myapp:preDexDebug
(...)
:myapp:assembleDebug

BUILD SUCCESSFUL

如何将 -Xlint:unchecked 添加到底层任务?关于 Java 编译选项的 Gradle 插件用户指南没有帮助.

How can I add the -Xlint:unchecked to the underlying task? Gradle Plugin User Guide on Java compilation options is unhelpful.

推荐答案

我根据关于操作任务的 Gradle 插件用户指南 和 关于 JavaCompile 的 Gradle DSL 文档:

添加到build.gradle:

preBuild {
    doFirst {
        JavaCompile jc = android.applicationVariants.find { it.name == 'debug' }.javaCompile
        jc.options.compilerArgs = ["-Xlint:unchecked"]
    }
}

在 Gradle 的配置阶段应用变体是 null 并且所需的 JavaCompile 任务也不存在,因此我在执行阶段进行了修改.

The application variants are null during Gradle's configuration phase and the required JavaCompile task also doesn't exist, thus I do the modification in the execution phase instead.

相关文章