全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-23 5 分钟 ✍️ juanwangdev

mvn deploy 发布流程

deploy 将项目发布到远程仓库,供团队共享使用。

deploy 命令

基本用法

Bash
mvn deploy

执行阶段

XML
validate → compile → test → package → verify → install → deploy

发布内容

XML
构件 jar/war
pom.xml 元数据
sources.jar 源码包
javadoc.jar 文档包

distributionManagement 配置

发布仓库声明

Bash
<distributionManagement>
  <!-- 正式版仓库 -->
  <repository>
    <id>nexus-releases</id>
    <name>Releases Repository</name>
    <url>https://nexus.company.com/repository/maven-releases/</url>
  </repository>

  <!-- 快照版仓库 -->
  <snapshotRepository>
    <id>nexus-snapshots</id>
    <name>Snapshots Repository</name>
    <url>https://nexus.company.com/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

元素说明

元素说明
repository正式版发布仓库
snapshotRepository快照版发布仓库
id仓库标识,与认证对应
url仓库地址

认证配置

settings.xml

Bash
<settings>
  <servers>
    <server>
      <id>nexus-releases</id>
      <username>deployer</username>
      <password>deploy-password</password>
    </server>
    <server>
      <id>nexus-snapshots</id>
      <username>deployer</username>
      <password>deploy-password</password>
    </server>
  </servers>
</settings>

id 必须与 repository 的 id 一致。

发布流程

SNAPSHOT 发布

Bash
# 版本:1.0.0-SNAPSHOT
mvn deploy

# 发布到 snapshotRepository
# 同版本可多次发布(时间戳区分)

RELEASE 发布

Bash
# 版本:1.0.0
mvn deploy

# 发布到 repository
# 同版本只能发布一次

发布策略

版本策略

版本类型仓库发布次数
SNAPSHOTsnapshotRepository可多次
RELEASErepository仅一次

发布前检查

XML
# 清理后发布
mvn clean deploy

# 跳过测试发布(不推荐)
mvn clean deploy -DskipTests

发布常见错误

错误类型

错误原因
认证失败settings.xml 配置错误
版本已存在RELEASE 版本重复发布
网络超时仓库连接问题
权限不足用户无发布权限

排查方法

Bash
# 详细日志
mvn deploy -e -X

发布到中央仓库

前置条件

  • Sonatype 踴账号
  • GPG 签名配置
  • 项目元数据完整

配置示例

XML
<distributionManagement>
  <snapshotRepository>
    <id>sonatype-snapshots</id>
    <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
  </snapshotRepository>
  <repository>
    <id>sonatype-releases</id>
    <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2</url>
  </repository>
</distributionManagement>

发布验证

查看仓库

Bash
# 访问仓库地址验证
https://nexus.company.com/repository/maven-releases/com/example/my-app/1.0.0/

其他项目引用

text
<dependency>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0.0</version>
</dependency>

release 插件

使用 maven-release-plugin

text
# 准备发布
mvn release:prepare

# 执行发布
mvn release:perform

自动流程

text
1. 标记版本 SNAPSHOT → RELEASE
2. 打标签(Git tag)
3. 发布到仓库
4. 更新到下一版本 SNAPSHOT

要点总结

  • mvn deploy 发布到远程仓库
  • distributionManagement 配置发布仓库
  • settings.xml 配置认证信息
  • SNAPSHOT 可多次发布,RELEASE 仅一次
  • 发布前建议 clean deploy
  • 使用 release 插件自动化发布流程
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 mvn package 与 install
下一篇 → mvn test 与调试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码