lucene/gradle/java/javac.gradle

90 lines
2.9 KiB
Groovy

/*
* 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.
*/
// Configure Java project defaults.
allprojects { project ->
plugins.withType(JavaPlugin) {
sourceCompatibility = rootProject.minJavaVersion
targetCompatibility = rootProject.minJavaVersion
// Use 'release' flag instead of 'source' and 'target'
tasks.withType(JavaCompile) {
options.compilerArgs += ["--release", rootProject.minJavaVersion.toString()]
}
// Configure warnings.
// Use 'javac --help-lint' to get the supported list
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.compilerArgs += [
"-Xlint:auxiliaryclass",
"-Xlint:cast",
"-Xlint:classfile",
"-Xlint:-deprecation",
"-Xlint:dep-ann",
"-Xlint:divzero",
"-Xlint:empty",
// TODO: uh-oh we have broken APIs.
"-Xlint:-exports",
"-Xlint:fallthrough",
"-Xlint:finally",
// TODO: untested
"-Xlint:-missing-explicit-ctor",
"-Xlint:module",
"-Xlint:opens",
"-Xlint:options",
"-Xlint:overloads",
"-Xlint:overrides",
// TODO: some tests seem to have bad classpaths?
// this check seems to be a good sanity check for gradle?
"-Xlint:-path",
"-Xlint:processing",
"-Xlint:rawtypes",
"-Xlint:removal",
"-Xlint:requires-automatic",
"-Xlint:requires-transitive-automatic",
"-Xlint:-serial",
"-Xlint:static",
"-Xlint:strictfp",
"-Xlint:synchronization",
"-Xlint:text-blocks",
"-Xlint:try",
"-Xlint:unchecked",
"-Xlint:varargs",
"-Xlint:preview",
"-Xdoclint:all/protected",
"-Xdoclint:-missing",
"-Xdoclint:-accessibility"
]
if (project.path == ":lucene:benchmark-jmh") {
// JMH benchmarks use JMH preprocessor and incubating modules.
} else {
// proc:none was added because of LOG4J2-1925 / JDK-8186647
options.compilerArgs += [
"-proc:none"
]
if (propertyOrDefault("javac.failOnWarnings", true).toBoolean()) {
options.compilerArgs += "-Werror"
}
}
}
}
}