I have a sample project with two jpms modules. It is a maven project with one parent and two child modules.
A parent pom:
...
<modules>
<module>foo.api</module>
<module>foo.impl</module>
</modules>
...
API module pom:
...
<groupId>com.foo</groupId>
<artifactId>foo.api</artifactId>
...
API module-info:
module com.foo.api {
requires org.slf4j;
exports com.foo.api;
}
These are my settings for maven-javadoc-plugin (in parent pom):
<reporting>
<excludeDefaults>true</excludeDefaults>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.3.0</version>
<reportSets>
<reportSet>
<reports>
<report>javadoc-no-fork</report>
<report>test-javadoc-no-fork</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<doclint>none</doclint>
<dependencySourceIncludes>
<dependencySourceInclude>com.foo:${project.artifactId}</dependencySourceInclude>
</dependencySourceIncludes>
<doctitle>Title - ${project.version}</doctitle>
<includeDependencySources>false</includeDependencySources>
<windowtitle>Title</windowtitle>
<additionalJOptions>
<additionalJOption>--no-module-directories</additionalJOption>
</additionalJOptions>
</configuration>
</plugin>
</plugins>
</reporting>
And when I run mvn javadoc:javadoc
I get:
Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.2.0:javadoc (default-cli) on project foo.api: An error has occurred in Javadoc report generation:
Exit code: 1 - error: module not found: com.foo.api
Could anyone say how to fix it?
I found the solution. In case of modules, javadoc requires a compiles module descriptor, so it is necessary to do mvn compile javadoc:javadoc
instead of mvn javadoc:javadoc