1

我想要一个 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 编译选项中看不到类似的东西。

4

0 回答 0