必须将打包构件推送到远程Maven仓库才能实现团队或CI系统直接拉取,需先执行mvn clean package生成.jar和.pom文件,再配置pom.xml的distributionManagement及settings.xml的server凭证,最后运行mvn clean deploy完成部署。

要让团队成员或CI系统能直接拉取你开发的最新模块,必须把打包好的构件推送到远程Maven仓库,而不是只留在本地。这一步不是可选项,而是协作开发的刚性前提。
确认项目已正确打包
执行 mvn clean package,确保 target 目录下生成了 .jar(或 .war)文件和对应的 .pom 文件。缺少 .pom 文件会导致 deploy 失败,因为远程仓库需要它来解析依赖关系和元数据。
如果项目含子模块,必须在根目录执行命令,否则只会打包当前模块,其他模块不会被处理。
配置远程仓库地址
在项目的 pom.xml 中添加 <distributionManagement> 节点:
正式版走 releases 仓库,快照版走 snapshots 仓库——这两个 URL 必须由你的 Nexus/Artifactory 管理员提供,不能随意填写。写错会导致 405 错误或 401 拒绝访问。
【<id> 值必须与 settings.xml 中的 <server> 的 <id> 完全一致】,大小写、空格、连字符都不能差,否则认证失败。
示例配置:
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>https://nexus.example.com/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>https://nexus.example.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
配置账号密码凭证
打开 ~/.m2/settings.xml(Windows 是 %USERPROFILE%\.m2\settings.xml),在 <servers> 节点内添加对应 server:
<server>
<id>nexus-releases</id>
<username>deployer</username>
<password>xxx</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>deployer</username>
<password>xxx</password>
</server>
注意:密码明文存储有风险,生产环境建议用 mvn --encrypt-password 加密后填入 settings-security.xml,但首次部署用明文更快验证流程是否通。
执行一键部署
第一步:确保当前分支是你要发布的版本,比如 git checkout main 或 git checkout release/1.2.0。
第二步:运行命令:mvn clean deploy -Dmaven.test.skip=true。
第三步:观察控制台输出,直到看到 [INFO] BUILD SUCCESS 和类似 Uploaded to nexus-releases: https://... 的日志行。
第四步:打开 Nexus 或 Artifactory 页面,进入对应仓库,搜索你的 groupId:artifactId,确认新版本已出现在列表中,且包含 .jar、.pom、.sha1 等全部文件。


















