You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

maven-javadoc-plugin无法生成指定api模块Javadoc的解决方法

解决Maven多模块仅为api生成Javadoc的问题

原配置问题分析

你的父pom配置存在两个核心问题导致Javadoc未生成:

  1. pluginManagement仅做配置管理:该标签下的插件配置不会自动执行,必须在build/plugins中显式引用才会生效。
  2. aggregate目标不符合需求:这个目标用于聚合所有子模块的Javadoc,而你需要的是仅为api模块生成,且父模块是pom打包类型,结合sourceFileIncludes的路径过滤后可能无匹配文件,导致生成失败。

解决方案

方案一:在api模块单独配置Javadoc插件(推荐)

直接在api模块的pom中配置插件,精准控制仅该模块生成Javadoc,父pom仅保留插件版本管理。

  1. 修改父pom的pluginManagement部分,保留版本和通用配置:
<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>3.6.3</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>
  1. 在api模块的pom.xml中添加插件执行配置:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <phase>package</phase>
                    <goals>
                        <goal>javadoc</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/javadoc</outputDirectory>
                        <!-- 针对api模块自身路径配置过滤,更准确 -->
                        <sourceFileIncludes>
                            <include>**/me/suprB/pluginlogger/api/**/*.java</include>
                        </sourceFileIncludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

方案二:在父模块配置仅对api模块生效

如果不想修改api模块的pom,可以在父模块的build/plugins中配置,指定仅对api模块执行Javadoc生成:

修改父pom的build部分:

<build>
    <defaultGoal>clean install package</defaultGoal>

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.6.3</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-javadocs-api</id>
                    <phase>package</phase>
                    <goals>
                        <goal>javadoc</goal>
                    </goals>
                    <configuration>
                        <!-- 指定仅在api模块执行 -->
                        <modules>
                            <module>api</module>
                        </modules>
                        <outputDirectory>${project.basedir}/api/target/javadoc</outputDirectory>
                        <sourceFileIncludes>
                            <include>**/me/suprB/pluginlogger/api/**/*.java</include>
                        </sourceFileIncludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

验证

执行mvn clean install package后,api模块的target/javadoc目录下会生成Javadoc文件,plugin模块不会生成Javadoc。

内容的提问来源于stack exchange,提问作者suprB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:17:49