全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 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 compile 与 clean
下一篇 → mvn package 与 install
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库