lucene/gradle/java/javac.gradle

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

88 lines
2.8 KiB
Groovy
Raw Normal View History

/*
* 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.
*/
2019-12-02 09:34:57 -05:00
// Configure Java project defaults.
allprojects {
plugins.withType(JavaPlugin) {
sourceCompatibility = rootProject.minJavaVersion
targetCompatibility = rootProject.minJavaVersion
2019-12-02 09:34:57 -05:00
// Use 'release' flag instead of 'source' and 'target'
tasks.withType(JavaCompile) {
options.compilerArgs += ["--release", rootProject.minJavaVersion.toString()]
}
// Configure warnings.
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.compilerArgs += [
"-Xlint:-deprecation",
"-Xlint:-serial",
"-Xlint:auxiliaryclass",
"-Xlint:cast",
"-Xlint:classfile",
"-Xlint:dep-ann",
"-Xlint:divzero",
"-Xlint:empty",
// TODO: uh-oh we have broken APIs.
"-Xlint:-exports",
"-Xlint:fallthrough",
"-Xlint:finally",
"-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:static",
"-Xlint:requires-automatic",
"-Xlint:requires-transitive-automatic",
"-Xlint:try",
"-Xlint:unchecked",
"-Xlint:varargs",
"-Xlint:preview",
"-Xdoclint:all/protected",
"-Xdoclint:-missing",
"-Xdoclint:-accessibility",
"-proc:none", // proc:none was added because of LOG4J2-1925 / JDK-8186647
]
// enable some warnings only relevant to newer language features
if (rootProject.runtimeJavaVersion >= JavaVersion.VERSION_15) {
options.compilerArgs += [
"-Xlint:text-blocks",
]
}
if (rootProject.runtimeJavaVersion >= JavaVersion.VERSION_16) {
options.compilerArgs += [
"-Xlint:synchronization",
]
}
if (propertyOrDefault("javac.failOnWarnings", true).toBoolean()) {
options.compilerArgs += "-Werror"
}
}
2019-12-02 09:34:57 -05:00
}
}