Я хотел бы иметь проект 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
...
Есть ли какая-либо настройка компилятора, которую я могу использовать, чтобы исключить предупреждения для моего сгенерированного кода?Я знаю, что Компилятор, подверженный ошибкам позволяет исключать файлы с options.errorprone.disableWarningsInGeneratedCode = true
, но я не вижу ничего подобного в обычных опциях компиляции gradle.