Unable to build Maven project due to Javadoc error?

MavenJavadoc

Maven Problem Overview


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] ^

Maven Solutions


Solution 1 - Maven

I'm guessing you switched to Java 8. In this version Javadoc is stricter on the requirements.

You have three choices:

  1. Fix the errors
  2. disable the strict checking
  3. 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

Solution 2 - Maven

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>

Solution 3 - Maven

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>
 ...

Solution 4 - Maven

Just update your pom.xml with the properties tag, given below.

<properties>
    <additionalparam>-Xdoclint:none</additionalparam>
</properties>

Solution 5 - Maven

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.

Solution 6 - Maven

As mentioned by @turbanoff since version 3.0.0 the maven-javadoc-plugin config setting <additionalparam> has been replaced by <additionalOptions>

So the plugin defintion in your pom.xml can look like this:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-javadoc-plugin</artifactId>
	<version>3.2.0</version>
	<configuration>
		<additionalOptions>-Xdoclint:none</additionalOptions>
	</configuration>
</plugin>

This configuration will still generate the warnings. So you can and should fix them in your code. But it will now no longer break the maven build.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJonathanView Question on Stackoverflow
Solution 1 - MavenAbsurd-MindView Answer on Stackoverflow
Solution 2 - MavenJens PiegsaView Answer on Stackoverflow
Solution 3 - MavenSaurabh TyagiView Answer on Stackoverflow
Solution 4 - MavenNirbhay RanaView Answer on Stackoverflow
Solution 5 - MavenZachSandView Answer on Stackoverflow
Solution 6 - MavenRalphView Answer on Stackoverflow