A problem we recently got when upgrading to Java 11. This post started as a question/problem, but as I was writing and debugging I found the culprit. Read on the conclusion below. I would love to know why.
When building in Jenkins CI, gradle javadoc task reports a lot of warnings and errors.
When building locally, gradle javadoc only reports 2 warnings. These warning are not reported by Jenkins CI build process.
I had to double check, but both CI and local builds was building from the same git source. They used approximately the same version of Gradle (5.5 vs 5.5.1), and same OpenJDK version (Java 11.0.4).
Well there is one slight different with the JDK used by the CI and used locally. Different builds:
JVM: 11.0.4 (AdoptOpenJDK 11.0.4+11) JVM: 11.0.4 (Oracle Corporation 11.0.4+11-suse-lp18.104.22.168-x8664)
I was baffled and could not see why I didn’t get these warnings and errors when building locally.
For example after we moved to Java 11 we got this javadoc error a lot in the Jenkins CI build, but that did not present them self locally:
error: tag not supported in the generated HTML version: tt
I then logged into the Jenkins CI build agent, and tried to build locally there with the same version of JDK and Gradle. That also did report all the warnings and errors as it did within Jenkins CI was building.
export JAVA_HOME=/usr/java/jdk-11 gradle wrapper --gradle-version=5.5 ./gradlew -Dhttps.proxyHost=proxy.company.no -Dhttps.proxyPort=3128 clean ./gradlew --refresh-dependencies --no-daemon clean build publish -Pheadless
I then decided to use the exact same JDK locally.
I unpacked the AdoptOpenJDK, set JAVA_HOME to it and… Surprise surprise, it did report all same warnigns and errors as Jenkins CI did.
So Why would the different builds of OpenJDK present them self as such a big different in running Javadoc? The OpenJDK I was using locally came with my Linux distribution OpenSUSE Leap 15.1
All OpenJDK from AdoptOpenJDK, Oracle, BellSoft Liberica are all reporting the same warnings and errors, but my Linux distribution OpenJDK does not.
All are OpenJDK builds of JDK11 of same version 11.0.4+11, but I find it very strange that my distribution OpenJDK should be of such difference.
Also the jmods from the Linux distribution OpenJDK are more than the others, for instance it has the java.xml.bind.jmods, which I find strange considering they have been removed from the JDK.
Is there a list somewhere what HTML tags are allowed in JavaDoc? I found a Stackoverflow discussion where TT was mentioned allowed in Java 9.