blob: 740919157a4728a0e5db1a05d4dd0ef530074ac6 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import com.github.vlsi.gradle.dsl.configureEach
import net.ltgt.gradle.errorprone.errorprone
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.dependencies
plugins {
id("java")
id("build-logic.build-params")
}
if (buildParameters.enableErrorprone) {
apply(plugin = "net.ltgt.errorprone")
dependencies {
"errorprone"("com.google.errorprone:error_prone_core:2.24.0")
"annotationProcessor"("com.google.guava:guava-beta-checker:1.0")
}
tasks.configureEach<JavaCompile> {
if ("Test" in name) {
// Ignore warnings in test code
options.errorprone.isEnabled.set(false)
} else {
// Errorprone requires Java 11+
options.errorprone.isEnabled.set(
javaCompiler.map { it.metadata.languageVersion.canCompileOrRun(11) }
)
options.compilerArgs.addAll(listOf("-Xmaxerrs", "10000", "-Xmaxwarns", "10000"))
options.errorprone {
disableWarningsInGeneratedCode.set(true)
enable(
"MissingDefault",
"PackageLocation",
"RedundantOverride",
"StronglyTypeTime",
"UnescapedEntity",
"UnnecessaryAnonymousClass",
"UnnecessaryDefaultInEnumSwitch",
)
warn(
"FieldCanBeFinal",
"FieldCanBeStatic",
"ForEachIterable",
"MethodCanBeStatic",
)
disable(
"ComplexBooleanConstant",
"EqualsGetClass",
"InlineMeSuggester",
"OperatorPrecedence",
"MutableConstantField",
// "ReferenceEquality",
"SameNameButDifferent",
"TypeParameterUnusedInFormals"
)
// Analyze issues, and enable the check
disable(
"BigDecimalEquals",
"EmptyBlockTag",
"MissingSummary",
"StringSplitter",
"BanJNDI",
)
}
}
}
}