将Java编译器标志添加到android gradle项目中除协议缓冲区之外的所有内容

问题描述

我有一个使用协议缓冲区的Android项目。我想打开-Werror和lint检查,因此已将其添加到我的应用程序的build.gradle中:

android {
// snip
      tasks.withType(JavaCompile) {
        options.compilerArgs.addAll("-Xlint:all","-Werror"])
    }
}

我也有一个protobuf区块:

protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.8.0'
    }


    generateProtoTasks {
        all().each { task ->
            task.builtins {
                java {
                    option "lite"
                }
            }
        }
    }
}

我希望自己的代码将警告视为错误,但不希望生成protobuf代码(该代码位于app / build / generation / ...中)。我该如何仅将标记赋予我自己的代码?

解决方法

结果证明,最简单的方法是为protobuf工件创建一个子项目,并将编译标志仅应用于该库的使用者。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...