我已经阅读了解决该问题的所有内容,但尝试仍然失败。我能做的最好的事情就是让一个模块的Javadoc出现-最后一个模块。 (目前,我没有试图将Javadoc捆绑到任何JAR中。我也没有试图进行任何“站点”操作。)我只是想将Javadoc放置在项目根目录下的子目录中。
这是我父母 pom.xml 中的内容:
<build>
<plugins>
.
.
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<noqualifier>all</noqualifier>
<reportOutputDirectory>${user.dir}/documents</reportOutputDirectory>
<destDir>javadoc</destDir>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
我要放入下级 pom.xml 文件中的内容与上述相同,除了
<goals>
<goal>javadoc</goal>
</goals>
我曾经玩过用以下命令替换父文件中的<execution>
以及从属的 pom.xml 文件:
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
但这没什么区别。
答案 0 :(得分:1)
我认为以下配置是您的报告被覆盖的原因:
<configuration>
<reportOutputDirectory>${user.dir}/documents</reportOutputDirectory>
</configuration>
所有模块构建都将写入同一目录,因此将覆盖先前的构建。
解决方案是使用默认输出目录,而是为聚集的Javadoc配置输出目录。这样,反应堆构建将在每个模块的目标目录中创建javadoc输出文件。然后,这些就可以被汇总目标用来合并。
这可以通过如下配置父POM来完成:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<!-- Default configuration for all reports -->
<noqualifier>all</noqualifier>
<destDir>javadoc</destDir>
</configuration>
<executions>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<!-- Specific configuration for the aggregate report -->
<reportOutputDirectory>${user.dir}/documents</reportOutputDirectory>
<destDir>javadoc</destDir>
</configuration>
</execution>
...
</executions>
</plugin>
...
</plugins>
</build>
(模块POM文件中不需要任何其他配置)
现在可以通过运行创建聚集的Javadoc
mvn compile javadoc:javadoc javadoc:aggregate
(请注意,反应堆需要使用编译或打包目标来解决模块间的依赖性)