如何解决将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工件创建一个子项目,并将编译标志仅应用于该库的使用者。