java - 为多模块项目配置 Maven java-docs 插件(聚合)

标签 java maven

我想在我的项目中设置 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/

相关文章:

java - 根据列值问题更改JTable行的背景颜色

java - 原始装饰器的实际缺点

java - DBCP2 与 Tomcat 7 和 Java 1.7 - Eclipse 和 Maven

java - 在maven资源文件夹中创建一个新文件

maven 程序集,避免 zip 文件中的完整路径?

java - 缺少 SWT 依赖 Artifact ?

java - 创建具有重复键的映射

java - 从流和元素生成流,Java 8

java - 由 : com. mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 引起

css - 如何将CSS添加到Vaadin/Maven元素中?