You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2022/10/25 13:42:01 UTC

[hbase] branch master updated: HBASE-25983 javadoc generation fails on openjdk-11.0.11+9 (#4837)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 792f12b616e HBASE-25983 javadoc generation fails on openjdk-11.0.11+9 (#4837)
792f12b616e is described below

commit 792f12b616ea67822064b64febaf43479a890195
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Tue Oct 25 21:41:53 2022 +0800

    HBASE-25983 javadoc generation fails on openjdk-11.0.11+9 (#4837)
    
    Signed-off-by: Nick Dimiduk <nd...@apache.org>
---
 pom.xml | 59 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 45 insertions(+), 14 deletions(-)

diff --git a/pom.xml b/pom.xml
index bca2e41958b..c9f74cde8b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -782,7 +782,12 @@
          comes in via hbase-thirdparty hbase-shaded-netty-->
     <netty.hadoop.version>3.10.5.Final</netty.hadoop.version>
     <!-- end HBASE-15925 default hadoop compatibility values -->
-    <audience-annotations.version>0.5.0</audience-annotations.version>
+    <audience-annotations.version>0.13.0</audience-annotations.version>
+    <!--
+      The version used when generating javadoc, 0.13.0 is the latest version which supports jdk8.
+      When building with jdk11, we will use 0.14.1, please see the build-with-jdk11 profile.
+    -->
+    <javadoc.audience-annotations.version>0.13.0</javadoc.audience-annotations.version>
     <avro.version>1.11.0</avro.version>
     <caffeine.version>2.8.1</caffeine.version>
     <commons-codec.version>1.13</commons-codec.version>
@@ -933,8 +938,7 @@
         this parameter by invoking mvn with -Dbuild.id=$BUILD_ID-->
     <build.id>${maven.build.timestamp}</build.id>
     <shell-executable>bash</shell-executable>
-    <!-- TODO HBASE-15041 clean up our javadocs so jdk8 linter can be used.
-         property as of javadoc-plugin 3.0.0 -->
+    <!-- Still need this to ignore some errors when building javadoc-->
     <doclint>none</doclint>
   </properties>
   <!-- Sorted by groups of dependencies then groupId and artifactId -->
@@ -1767,8 +1771,6 @@
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <configuration>
-            <source>${compileSource}</source>
-            <target>${compileSource}</target>
             <showWarnings>true</showWarnings>
             <showDeprecation>false</showDeprecation>
             <useIncrementalCompilation>false</useIncrementalCompilation>
@@ -3010,7 +3012,7 @@
               <docletArtifact>
                 <groupId>org.apache.yetus</groupId>
                 <artifactId>audience-annotations</artifactId>
-                <version>${audience-annotations.version}</version>
+                <version>${javadoc.audience-annotations.version}</version>
               </docletArtifact>
               <useStandardDocletOptions>true</useStandardDocletOptions>
               <destDir>apidocs</destDir>
@@ -3067,7 +3069,7 @@
               <docletArtifact>
                 <groupId>org.apache.yetus</groupId>
                 <artifactId>audience-annotations</artifactId>
-                <version>${audience-annotations.version}</version>
+                <version>${javadoc.audience-annotations.version}</version>
               </docletArtifact>
               <useStandardDocletOptions>true</useStandardDocletOptions>
               <destDir>testapidocs</destDir>
@@ -3157,18 +3159,17 @@
     <profile>
       <id>build-with-jdk8</id>
       <activation>
-        <jdk>[1.8,)</jdk>
+        <jdk>1.8</jdk>
       </activation>
-      <build>
-        <pluginManagement>
-          <plugins/>
-        </pluginManagement>
-      </build>
+      <properties>
+        <maven.compiler.source>${compileSource}</maven.compiler.source>
+        <maven.compiler.target>${compileSource}</maven.compiler.target>
+      </properties>
     </profile>
     <profile>
       <id>build-with-jdk11</id>
       <activation>
-        <jdk>[1.11,)</jdk>
+        <jdk>[11,)</jdk>
       </activation>
       <properties>
         <maven.compiler.release>${releaseTarget}</maven.compiler.release>
@@ -3188,7 +3189,37 @@
           TODO: replicate logic for windows
         -->
         <surefire.Xmx>2200m</surefire.Xmx>
+        <!--
+          com.sun.javadoc and com.sun.tools.doclets are both deprecated in java 11 and will
+          fail the javadoc generating, so we need to use yetus 0.14.1 where it uses jdk.javadoc
+          and jdk.javadoc.doclet instead
+        -->
+        <javadoc.audience-annotations.version>0.14.1</javadoc.audience-annotations.version>
       </properties>
+      <build>
+        <pluginManagement>
+          <plugins>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-javadoc-plugin</artifactId>
+              <version>${maven.javadoc.version}</version>
+              <configuration>
+                <source>${compileSource}</source>
+                <!--
+                  Need to add this option to ignore the source errors, epsecially that we reference
+                  test code in hbase-testing-util's main code.
+                -->
+                <additionalOptions>--ignore-source-errors</additionalOptions>
+                <additionalJOptions>
+                  <additionalJOption>-J-Xmx2G</additionalJOption>
+                  <additionalJOption>-J--add-exports</additionalJOption>
+                  <additionalJOption>-Jjdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED</additionalJOption>
+                </additionalJOptions>
+              </configuration>
+            </plugin>
+          </plugins>
+        </pluginManagement>
+      </build>
     </profile>
     <!-- profile activated by the Jenkins patch testing job -->
     <profile>