apply plugin: 'java' apply plugin: 'nebula.lint' apply plugin: 'net.ltgt.apt' apply plugin: 'net.ltgt.errorprone' apply plugin: 'checkstyle' // Checkstyle should run as part of the testing task tasks.test.dependsOn tasks.checkstyleMain tasks.test.dependsOn tasks.checkstyleTest dependencies { // compatibility with Java 8 errorproneJavac("com.google.errorprone:javac:9+181-r4173-1") errorprone("com.google.errorprone:error_prone_core:2.3.3") } tasks.withType(JavaCompile).configureEach { // The -Werror flag causes Intellij to fail on deprecated api use. // Allow IDE user to turn off this flag by specifying a Gradle VM // option from inside the IDE. if (System.getProperty('no_werror') != 'true') { options.compilerArgs << "-Werror" } options.compilerArgs << "-Werror" options.errorprone.disableWarningsInGeneratedCode = true options.errorprone.errorproneArgumentProviders.add([ asArguments: { return ['-XepExcludedPaths:.*/build/generated/.*'] }] as CommandLineArgumentProvider) // Disable features currently incompatible with Java 12 if ((JavaVersion.current().majorVersion as Integer) > 11) { // This check is broken in Java 12. // See https://github.com/google/error-prone/issues/1257 options.errorprone.errorproneArgs=['-Xep:Finally:OFF'] } } version = '1.0' sourceCompatibility = '1.8' targetCompatibility = '1.8' compileJava { options.encoding = "UTF-8" } compileTestJava { options.encoding = "UTF-8" } gradleLint.rules = [ // Checks if Gradle wrapper is up-to-date 'archaic-wrapper', // Checks for indirect dependencies with dynamic version spec. Best // practice calls for declaring them with specific versions. 'undeclared-dependency', 'unused-dependency' // TODO(weiminyu): enable more dependency checks ]