当模块名称与 artifactId 不同时,JPMS 模块的 Javadoc

问题描述

我有一个带有两个 jpms 模块的示例 project。这是一个带有一个父模块和两个子模块的 Maven 项目。

父 pom:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>







<input type="text" id="name" name="nomclient" class="bg-white text-dark" />

API 模块 pom:

...
<modules>
    <module>foo.api</module>
    <module>foo.impl</module>
</modules>
...

API 模块信息:

...
<groupId>com.foo</groupId>
<artifactId>foo.api</artifactId>
...

这些是我对 maven-javadoc-plugin 的设置(在父 pom 中):

module com.foo.api {
    requires org.slf4j;
    exports com.foo.api;
}

当我运行 <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> 时,我得到:

mvn javadoc:javadoc

谁能告诉我如何解决它?

解决方法

我找到了解决方案。在模块的情况下,javadoc 需要一个编译模块描述符,所以有必要做 mvn compile javadoc:javadoc 而不是 mvn javadoc:javadoc