maven项目生成项目依赖信息

以下是使用 maven-project-info-reports-pluginmaven-site-plugin 生成项目依赖报告的完整流程示例,包含配置、执行步骤和结果验证。


一、环境准备

  1. Maven 版本要求

    • 确保 Maven ≥ 3.6.3(推荐最新稳定版)。
    • 检查版本:
      mvn -v
      
  2. JDK 版本要求

    • JDK ≥ 1.8(与 Maven 版本兼容即可)。

二、配置 pom.xml

1. 基础配置(推荐方式)

pom.xml 中添加以下插件配置,生成依赖报告并集成到项目站点中:

<project>
    <!-- 其他配置(如 groupId, artifactId, version 等)省略 -->

    <properties>
        <!-- 统一管理插件版本 -->
        <maven-site-plugin.version>3.12.1</maven-site-plugin.version>
        <maven-project-info-reports-plugin.version>3.5.0</maven-project-info-reports-plugin.version>
    </properties>

    <build>
        <plugins>
            <!-- 配置 maven-site-plugin(生成站点) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>${maven-site-plugin.version}</version>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <!-- 配置 maven-project-info-reports-plugin(生成依赖报告) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${maven-project-info-reports-plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <!-- 只生成依赖报告(可选其他报告) -->
                            <report>dependencies</report>
                            <!-- 如果需要更多报告,取消注释以下行 -->
                            <!-- <report>dependency-info</report> -->
                            <!-- <report>license</report> -->
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
</project>

2. 精简配置(仅依赖报告)

如果只需生成依赖报告且不集成到站点,可简化配置:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>3.5.0</version>
            <reports>
                <report>dependencies</report>
            </reports>
        </plugin>
    </plugins>
</reporting>

三、执行流程

1. 清理并生成报告

运行以下命令,清理旧文件并生成依赖报告:

mvn clean site
  • clean:删除 target/ 目录,避免旧数据干扰。
  • site:触发站点生成,包含依赖报告。

2. 仅生成依赖报告(跳过站点)

如果只需依赖报告(HTML 文件),使用:

mvn project-info-reports:dependencies
  • 报告会生成在 target/site/dependencies.html

四、结果验证

1. 查看依赖报告

打开生成的 HTML 文件:

# Linux/macOS
open target/site/dependencies.html

# Windows
start target/site/dependencies.html

报告内容示例:

  • 依赖树:展示直接和传递依赖。
  • 依赖范围:标记 compiletestprovided 等范围。
  • 可选依赖:列出 <optional>true</optional> 的依赖。

2. 查看完整站点(可选)

如果配置了 maven-site-plugin,完整站点会包含依赖报告:

open target/site/index.html

站点导航栏中会有 Dependencies 链接。


五、高级用法

1. 生成所有项目信息报告

修改 pom.xml<reports> 节点,添加更多报告类型:

<reports>
    <report>dependencies</report>
    <report>dependency-info</report> <!-- 依赖元数据 -->
    <report>license</report>         <!-- 许可证信息 -->
    <report>team</report>            <!-- 项目团队 -->
    <report>scm</report>             <!-- 源代码管理 -->
</reports>

2. 自定义报告输出目录

通过 maven-site-plugin<outputDirectory> 配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.12.1</version>
    <configuration>
        <outputDirectory>${project.build.directory}/custom-site</outputDirectory>
    </configuration>
</plugin>

3. 集成到 CI/CD

在 Jenkins/GitHub Actions 中添加步骤:

# GitHub Actions 示例
- name: Generate Maven Site
  run: mvn clean site
- name: Upload Reports
  uses: actions/upload-artifact@v3
  with:
    name: maven-reports
    path: target/site/

六、常见问题解决

1. 报告生成失败(ClassNotFound)

  • 原因:插件版本与 Maven 不兼容。
  • 解决
    • 升级插件到最新版(如 3.5.0)。
    • 检查 JDK 版本是否 ≥ 1.8。

2. 依赖报告为空

  • 原因:项目无依赖或配置错误。
  • 解决
    • 确保 pom.xml 中声明了 <dependencies>
    • 运行 mvn dependency:tree 检查依赖是否解析成功。

3. 站点生成缓慢

  • 原因:报告过多或网络问题(下载插件依赖)。
  • 解决
    • 仅生成必要报告(如仅 dependencies)。
    • 使用 Maven 离线模式(-o):
      mvn clean site -o
      

总结

步骤 命令 输出文件
配置插件 修改 pom.xml -
生成报告 mvn clean site target/site/dependencies.html
快速生成 mvn project-info-reports:dependencies target/site/dependencies.html
验证结果 打开 HTML 文件 查看依赖树和范围

推荐流程

  1. 配置 pom.xml(使用最新插件版本)。
  2. 运行 mvn clean site
  3. 检查 target/site/dependencies.html

通过此流程,你可以轻松生成项目依赖的完整报告,并集成到持续集成流程中。

posted @ 2025-08-21 15:30  蓝迷梦  阅读(37)  评论(0)    收藏  举报