我想在我的项目中设置 maven java-docs 插件来创建一个聚合报告,其中仅包含某些模块中的一些类,并将报告输出到选择的文件夹。
我已经尝试使用 Maven 文档 here然而那里表明的内容似乎对我不起作用。 我过去尝试过以下配置并将其运行为: mvn javadoc:javadoc,甚至 javadoc:aggregate 具有以下父/子 pom 配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<inherited>false</inherited>
<configuration>
<!-- Default configuration for all reports -->
</configuration>
<executions>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<phase>package</phase>
<configuration>
</configuration>
</execution>
</executions>
</plugin>
我过去使用过类似的东西:
父pom.xml
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</pluginManagement>
...
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<!-- Default configuration for all reports -->
</configuration>
<executions>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<phase>site</phase>
<configuration>
<skip>false</skip>
</configuration>
</execution>
</executions>
</plugin>
</build>
所需的子模块 pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<skip>false</skip>
<noqualifier>all</noqualifier>
<sourceFileIncludes>
<include>**\/\Class1.java</include>
<include>**\/\Class2.java</include>
<include>**\/\Interface3.java</include>
<include>**\/\Class4.java</include>
</sourceFileIncludes>
<reportOutputDirectory>${project.parent.basedir}/..</reportOutputDirectory>
<destDir>java-docs</destDir>
</configuration>
</plugin>
</plugins>
</build>
如果我仅从一个模块生成,则此配置工作正常,但是一旦选择了另一个子模块并将其配置为前面所示的模块,运行 mvn javadoc:aggregate 将继续仅生成模块 1 和模块 2 的文档被忽略(甚至可能被覆盖)
是否有人处理过类似的场景,一个结构如下的多模块项目:
ParentFolder
. . . module1
pom.xml
. . . module3
pom.xml
. . . module4
pom.xml
pom.xml
并且已经使用 maven java docs 插件成功生成了聚合的 java docs 报告,同时排除了一些类并将结果输出到他们选择的文件夹中? 任何有关此问题的帮助将不胜感激!
最佳答案
您是否有一个父 POM 包含子 POM 的插件配置、和模块定义?如果是这样,您可能需要考虑将此 POM 分离为单独的聚合器(模块定义)和父级(当前 POM 中应与子级共享的任何其他内容)。
这个answer更详细地介绍了 Maven 构建顺序以及发生该行为的原因。
聚合器 POM 还将保存应聚合的子模块数据的配置,例如 Javadoc。
关于java - 为多模块项目配置 Maven java-docs 插件(聚合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400891/