1/* 2 * Copyright (C) 2017. Uber Technologies 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17import net.ltgt.gradle.errorprone.CheckSeverity 18 19plugins { 20 id "java-library" 21} 22 23sourceCompatibility = "1.8" 24targetCompatibility = "1.8" 25 26dependencies { 27 annotationProcessor project(":nullaway") 28 annotationProcessor deps.test.lombok 29 30 compileOnly deps.build.jsr305Annotations 31 compileOnly deps.build.javaxValidation 32 compileOnly deps.test.cfQual 33 compileOnly deps.test.lombok 34} 35 36tasks.withType(JavaCompile) { 37 if (!name.toLowerCase().contains("test")) { 38 options.errorprone { 39 check("NullAway", CheckSeverity.ERROR) 40 check("UnusedVariable", CheckSeverity.OFF) // We are not the only checker that fails on Lombok 41 check("MissingBraces", CheckSeverity.OFF) // We are not the only checker that fails on Lombok 42 option("NullAway:AnnotatedPackages", "com.uber") 43 option("NullAway:UnannotatedSubPackages", "com.uber.lib.unannotated") 44 } 45 } 46 if (JavaVersion.current().java9Compatible) { 47 // We need to fork on JDK 16+ since Lombok accesses internal compiler APIs 48 options.fork = true 49 options.forkOptions.jvmArgs += ["--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED"] 50 } 51} 52