maven项目生成项目依赖信息
以下是使用 maven-project-info-reports-plugin 和 maven-site-plugin 生成项目依赖报告的完整流程示例,包含配置、执行步骤和结果验证。
一、环境准备
-
Maven 版本要求
- 确保 Maven ≥ 3.6.3(推荐最新稳定版)。
- 检查版本:
mvn -v
-
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
报告内容示例:
- 依赖树:展示直接和传递依赖。
- 依赖范围:标记
compile、test、provided等范围。 - 可选依赖:列出
<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 文件 | 查看依赖树和范围 |
推荐流程:
- 配置
pom.xml(使用最新插件版本)。 - 运行
mvn clean site。 - 检查
target/site/dependencies.html。
通过此流程,你可以轻松生成项目依赖的完整报告,并集成到持续集成流程中。
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/19050925

浙公网安备 33010602011771号