JDK11 で Javadoc の生成に失敗することがありました。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:jar (attach-javadocs) on project sqlline: MavenReportException: Error while generating Javadoc:
[ERROR] Exit code: 1 - Picked up JAVA_TOOL_OPTIONS: -XX:+UseContainerSupport
[ERROR] javadoc: error - The code being documented uses modules but the packages defined in https://docs.oracle.com/javase/8/docs/api/ are in the unnamed module.
[ERROR]
[ERROR] Command line was: /opt/java/openjdk/bin/javadoc @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in '/work/sqlline/target/apidocs' dir.

Issue

これは JDK の問題で、以下のページで扱われています。Automatic Module の Javadoc を出力する際の問題のようです。

Solution

私達の場合は source/target が 8 だったので、https://maven.apache.org/plugins/maven-javadoc-plugin/ に以下の設定を入れることで回避できました。

root@e6c75c575b52:/work/sqlline# git diff
diff --git a/pom.xml b/pom.xml
index b8ff859..5992824 100644
--- a/pom.xml
+++ b/pom.xml
@@ -215,6 +215,7 @@
         <configuration>
           <additionalOptions>${maven-javadoc-plugin.additionalOptions}</additionalOptions>
           <show>public</show>
+          <source>${maven.compiler.source}</source>
         </configuration>
         <executions>
           <execution>

JDK 本体の修正は以下の Commit で行われています。

https://github.com/openjdk/jdk/commit/478755a49ca9a1f403126a33db4165f84ad465fa

Conclusion

Java のリリースサイクルが速くなったこともあり、余計な Issue を踏まない為にも Version の指定ができるところはした方が良さそうです。