Unable to build Maven project due to Javadoc error?
Has anyone come across a similar Maven error as below?
I am unable to build my project due to the error below. All was working previously fine before I started working on the code.
I did not even work on the below defined interfaces and it seems to be related to Javadoc?
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project jonney-project: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/me/Work/myProject/library/src/main/java/com/me/someInterface.java:45: warning: no @return
[ERROR] public abstract boolean searchForDevce();
[ERROR] ^
[ERROR] /Users/me/Work/myProject/src/main/java/com/me/someInterfaceAgain.java:52: warning: no @return
[ERROR] public abstract boolean selectDevice(int pos);
[ERROR] ^
I'm guessing you switched to Java 8. In this version Javadoc is stricter on the requirements.
You have three choices:
- Fix the errors
- disable the strict checking
- skip Javadoc when building
To disable the strict checking, add this to your pom.xml
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</plugin>
</plugins>
to skip Javadoc while building, use this:
mvn -Dmaven.javadoc.skip=true verify
Further Information
With maven-javadoc-plugin version 3.0.0 <additionalparam/>
has been replaced by <additionalOptions/>
. To reduce the errors to warnings this pom.xml entry worked for me:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<additionalOptions>
<additionalOption>-Xdoclint:none</additionalOption>
</additionalOptions>
</configuration>
</plugin>
</plugins>
</build>
UPDATE FOR THOSE WHO GOOGLED THIS BUG: If the project uses source/target 8, adding 8 in javadoc configuration should make the project buildable on jdk {11, 12, 13}:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<source>8</source>
</configuration>
...
Just update your pom.xml with the properties tag, given below.
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
None of the above options seemed to work for me when using version 3.2.0. Instead I noticed the failOnError option. Setting this tags value to false seemed to do the trick for allowing my build to succeed even when there were javadoc errors.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<failOnError>false</failOnError>
</configuration>
</plugin>
This will stop the javadoc jar from being generated for the maven project. This was okay in my case as I was only wanting to build without errors during ongoing development. The other options may still allow for the javadoc jar to be generated when there are errors.