You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2020/01/18 01:00:54 UTC

[kudu] 02/02: [build] Fix Java build on JDK 13

This is an automated email from the ASF dual-hosted git repository.

granthenke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit e6ac21838acf077b617bc8829511045dff3c859b
Author: Grant Henke <gr...@apache.org>
AuthorDate: Fri Jan 17 13:25:05 2020 -0600

    [build] Fix Java build on JDK 13
    
    This patch fixes build issues on JDK 13. It disables errorprone
    due to compatibility issues and upgrades the SpotBugs
    dependency.
    
    Some tests still fail due to dependency incompatibility with Java 13:
    - All Spark/Scala related tests
    — kudu-spark, kudu-spark-tools, kudu-backup
    - All Hive related tests
    — kudu-hive, kudu-client:testHiveMetastoreIntegration
    
    Change-Id: Ic67dd66e64e7fda88a58cb9eae8821f5f3cf08bb
    Reviewed-on: http://gerrit.cloudera.org:8080/15066
    Reviewed-by: Adar Dembo <ad...@cloudera.com>
    Tested-by: Kudu Jenkins
---
 java/gradle/dependencies.gradle |  2 +-
 java/gradle/quality.gradle      | 41 +++++++++++++++++++++++------------------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/java/gradle/dependencies.gradle b/java/gradle/dependencies.gradle
index 76cc8cd..67b42a7 100755
--- a/java/gradle/dependencies.gradle
+++ b/java/gradle/dependencies.gradle
@@ -56,7 +56,7 @@ versions += [
     scopt          : "3.7.1",
     slf4j          : "1.7.29",
     spark          : "2.4.4",
-    spotBugs       : "3.1.12",
+    spotBugs       : "4.0.0-beta1",
     yetus          : "0.11.1"
 ]
 
diff --git a/java/gradle/quality.gradle b/java/gradle/quality.gradle
index 4a75071..640f9fa 100644
--- a/java/gradle/quality.gradle
+++ b/java/gradle/quality.gradle
@@ -22,7 +22,6 @@ apply plugin: "com.github.spotbugs"   // Performs static code analysis to look f
 apply plugin: "com.github.ben-manes.versions" // Provides a task to determine which dependencies have updates.
 apply plugin: "ru.vyarus.animalsniffer" // Ensures Java code uses APIs from a particular version of Java.
 apply plugin: "scalafmt" // Automatically formats Scala code on each build.
-apply plugin: "net.ltgt.errorprone" // Performs static code analysis to look for bugs in Java code.
 
 checkstyle {
   toolVersion = versions.checkstyle
@@ -69,25 +68,31 @@ tasks.withType(ScalaCompile) {
   }
 }
 
-// Configure error-prone.
-// Running with '-Derrorprone-fix=...' can instruct error-prone to automatically fix issues.
-tasks.withType(JavaCompile) {
-  options.errorprone {
-    disableWarningsInGeneratedCode = true
-    excludedPaths = '.*/build/generated.*/.*'
-    allErrorsAsWarnings = true
-    def fix = propertyWithDefault("errorprone-fix", "")
-    if (!fix.isEmpty()) {
-      errorproneArgs += ['-XepPatchChecks:' + fix, '-XepPatchLocation:IN_PLACE']
+// Errorprone doesn't support Java 12+
+// https://github.com/google/error-prone/issues/1106
+if(!JavaVersion.current().isJava12Compatible()) {
+  apply plugin: "net.ltgt.errorprone" // Performs static code analysis to look for bugs in Java code.
+
+  // Configure error-prone.
+  // Running with '-Derrorprone-fix=...' can instruct error-prone to automatically fix issues.
+  tasks.withType(JavaCompile) {
+    options.errorprone {
+      disableWarningsInGeneratedCode = true
+      excludedPaths = '.*/build/generated.*/.*'
+      allErrorsAsWarnings = true
+      def fix = propertyWithDefault("errorprone-fix", "")
+      if (!fix.isEmpty()) {
+        errorproneArgs += ['-XepPatchChecks:' + fix, '-XepPatchLocation:IN_PLACE']
+      }
     }
   }
-}
-dependencies {
-  // Set a specific version of Error Prone
-  errorprone libs.errorProne
-  // Configure Error Prone to use it's own static javac as described here:
-  // https://github.com/tbroyer/gradle-errorprone-plugin#jdk-8-support
-  errorproneJavac libs.errorProneJavac
+  dependencies {
+    // Set a specific version of Error Prone
+    errorprone libs.errorProne
+    // Configure Error Prone to use it's own static javac as described here:
+    // https://github.com/tbroyer/gradle-errorprone-plugin#jdk-8-support
+    errorproneJavac libs.errorProneJavac
+  }
 }
 
 // Define a Java API signature for use by animal-sniffer. It'll enforce that all