我想要一个 gradle 项目,它不会对我编写的任何代码产生编译器警告。我还想使用Immutables 库来生成我的一些类。目前我还没有找到禁用生成代码警告的方法。
目前我有一个gradle.properties
文件,其中包括:
org.gradle.warning.mode = all
immutables_version = 2.7.4
在我的模块中build.gradle
,我有以下相关部分:
apply plugin: "java"
dependencies {
annotationProcessor("org.immutables:value:${immutables_version}")
compileOnly("org.immutables:value-annotations:${immutables_version}")
}
project.sourceSets.configureEach { sourceSet ->
def generatedSourcesDir = project.file("${project.buildDir}/generated/${sourceSet.name}/java")
generatedSourcesDir.mkdirs()
sourceSet.java { source ->
if (!source.srcDirs.contains(generatedSourcesDir)) {
source.srcDir generatedSourcesDir
}
}
project.tasks.named(sourceSet.getCompileTaskName("java").configure {
options.annotationProcessorGeneratedSourcesDirectory = generatedSourcesDir
options.compilerArgs << "-Werror"
}
}
当我尝试编译时,我得到如下所示的输出:
Running './gradlew :<module>:compileJava'...
> Task :<module>:compileJava FAILED
warning: Regenerated file with the same content: <generated immutables file>
error: warnings found and -Werror specified
1 error
1 warning
...
是否有任何编译器设置可用于排除生成代码的警告?我知道Error Prone 编译器允许您排除文件,options.errorprone.disableWarningsInGeneratedCode = true
但我在普通的 gradle 编译选项中看不到类似的东西。