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