Page MenuHomePhabricator

Java 11: Unave to find javadoc command
Closed, ResolvedPublic

Description

When building https://gerrit.wikimedia.org/r/wmf-jvm-utils with Java 11 I encounter:

[INFO] --- maven-javadoc-plugin:3.2.0:jar (attach-javadocs) @ http-client-utils ---
[ERROR] MavenReportException: Error while generating Javadoc: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.
org.apache.maven.reporting.MavenReportException: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2019)
...
Caused by: java.io.IOException: The environment variable JAVA_HOME is not correctly set.

The reason is Java 9 moved javadoc to JAVA_HOME/bin/javadoc and the Maven javadoc plugin 3.2.0 does not take that in account. A workaround is to set javadocExecutable using Maven profiles varying based on the JDK version has I have done in https://gerrit.wikimedia.org/g/integration/gearman-java :

pom.xml

<profiles>
    <profile>
        <id>jdk-8-config</id>
        <activation>
            <jdk>1.8</jdk>
        </activation>
        <properties>
            <javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>
        </properties>
    </profile>
    <profile>
        <id>jdk-11-config</id>
        <activation>
            <jdk>11</jdk>
        </activation>
        <properties>
            <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
        </properties>
    </profile>

After some digging, that got fixed upstream MJAVADOC-650 / Pull request 60 which handles the relocation.

The fix has been released in maven-javadoc-plugin 3.3.0.

Both wmf-jvm-utils and integration/gearman-java get it from our parent-pom https://gerrit.wikimedia.org/g/wikimedia/discovery/discovery-parent-pom/+/refs/heads/master which has:

pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.2.0</version>

It should be upgraded to 3.3.0 and the downstream repositories updated.

Event Timeline

Change 975003 had a related patch set uploaded (by Hashar; author: Hashar):

[wikimedia/discovery/discovery-parent-pom@master] Update maven-javadoc-plugin to 3.3.0

https://gerrit.wikimedia.org/r/975003

Change 975003 merged by jenkins-bot:

[wikimedia/discovery/discovery-parent-pom@master] Update maven-javadoc-plugin to 3.3.0

https://gerrit.wikimedia.org/r/975003

Change 975353 had a related patch set uploaded (by Hashar; author: Hashar):

[wmf-jvm-utils@master] Upgrade parent pom to latest version

https://gerrit.wikimedia.org/r/975353

Change 975805 had a related patch set uploaded (by Hashar; author: Hashar):

[search/cirrus-streaming-updater@master] Upgrade parent pom to latest version

https://gerrit.wikimedia.org/r/975805

Change 975805 abandoned by Hashar:

[search/cirrus-streaming-updater@master] Upgrade parent pom to latest version

Reason:

Moved to Gitlab

https://gerrit.wikimedia.org/r/975805

Change 975835 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/gearman-java@master] Update maven-javadoc-plugin to 3.3.0

https://gerrit.wikimedia.org/r/975835

Change 975353 merged by jenkins-bot:

[wmf-jvm-utils@master] Upgrade parent pom to latest version

https://gerrit.wikimedia.org/r/975353

Change 975835 merged by jenkins-bot:

[integration/gearman-java@master] Update maven-javadoc-plugin to 3.3.0

https://gerrit.wikimedia.org/r/975835

Fixed by upgrade the maven javadoc plugin to 3.3.0 in our parent pom. Any downstream repository can benefit from the fix by upgrading the parent pom to 1.69:

pom.xml
<parent>
    <groupId>org.wikimedia.discovery</groupId>
    <artifactId>discovery-parent-pom</artifactId>
    <version>1.69</version>
    <relativePath />
</parent>

Change 979325 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/gearman-java@master] Update maven-javadoc-plugin to 3.3.0 in <reporting>

https://gerrit.wikimedia.org/r/979325

Change 979325 merged by jenkins-bot:

[integration/gearman-java@master] Update maven-javadoc-plugin to 3.3.0 in <reporting>

https://gerrit.wikimedia.org/r/979325