| /* |
| * 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 { |
| 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. |
| 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" |
| } |
| } |
| } |
| } |