7. 发布管理
Maven 中的发布管理是指将项目发布为正式版本,并部署到指定的远程仓库中,供其他开发人员和项目依赖使用。Maven 的发布管理过程包含版本控制、构建、测试、打包以及最终的构件发布等一系列步骤,确保项目稳定、可重复和有版本化的发布流程。
Maven 的发布管理不仅包含构件发布,还包含站点发布。这两种发布管理功能各有侧重,服务于不同的项目需求。
7.1 构件发布
构件发布主要是指将项目的构建成果(如 JAR 包、WAR 包等)发布到远程仓库(如本地、公司内部的 Nexus/Artifactory 仓库,或远程公共仓库如 Maven Central)。
<distributionManagement> 是 Maven 项目发布时指定远程仓库的配置节点,包括 正式发布仓库 和 快照发布仓库:
<project>
...
<distributionManagement>
<repository>
<id>my-releases</id>
<url>http://my.repository.com/releases</url>
</repository>
<snapshotRepository>
<id>my-snapshots</id>
<url>http://my.repository.com/snapshots</url>
</snapshotRepository>
</distributionManagement>
...
</project>
<repository>:用于指定正式发布的远程仓库。<snapshotRepository>:用于指定快照版本发布的远程仓库。
同下载依赖的仓库一样,发布构件的仓库的认证也是在全局配置文件 settings.xml 中配置的:
<settings>
<servers>
<server>
<id>my-releases</id>
<username>my-username</username>
<password>my-password</password>
</server>
<server>
<id>my-snapshots</id>
<username>my-username</username>
<password>my-password</password>
</server>
</servers>
</settings>
7.2 站点发布
站点发布则是将项目生成的文档和报告发布到指定的站点服务器(可以是内部或外部服务器),通常包括:
- 项目文档:例如 README、API 文档、代码变更日志、依赖报告、开发指南等。
- 生成报告:包括代码覆盖率、测试结果、构建状态、依赖分析、质量审计等。
站点发布通常通过 Maven 的 site 插件生成静态 HTML 文件,然后使用 site-deploy 插件将这些文件发布到服务器,命令如下:
mvn site # 生成站点内容到 target/site
mvn site-deploy # 将站点内容发布到指定服务器
配置站点服务器:
<project>
...
<distributionManagement>
<site>
<id>my-site</id>
<url>scp://your.server.com/path/to/site</url>
</site>
</distributionManagement>
...
</project>
站点服务器的认证配置和仓库配置是一样的,都是在全局配置文件 settings.xml 中进行配置:
<settings>
<servers>
<server>
<id>my-site</id>
<username>my-username</username>
<password>my-password</password>
</server>
</servers>
</settings>