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