我想在我的项目中设置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报告,同时排除了某些类并将结果输出到他们选择的文件夹中? 任何帮助,将不胜感激!
答案 0 :(得分:0)
您是否有一个父POM包含子POM的插件配置,和模块定义?如果是这样,您可能要考虑将此POM分为一个单独的聚合器(模块定义)和父级(当前POM中应与子级共享的任何其他项)。
此answer详细介绍了Maven构建顺序以及行为发生的原因。
聚合器POM还将保存应聚合的子模块数据的配置,例如Javadoc。