如何发布 Maven 项目到 Central 中央仓库

根据多年的项目开发经验,总会出现各种需要自己封装库文件的需求,虽然市面上已有大量的开源方案,但总会有时无法完全满足其需求,所以为了方便自己封装的库文件能够在社区团队协作中方便进行使用,所以需要把自己的库文件推送到 Maven 的中央仓库中去

注意:如果只是公司的内部需求请采用搭建私有仓库的方式进行处理,本篇不展开私有仓库搭建的话题;这里主要是针对广大社区的使用或个人之后的使用的工作方便。

(一) 注册账户

https://issues.sonatype.org/secure/Signup!default.jspa

(二) 提交发布申请

https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134

(三) 生成非对称密钥对

由于我在 Mac 上操作的,所以我直接利用 Homebrew 进行安装。

1
brew install gpg

开始生成

1
gpg --gen-key

(四) 上传公钥到秘钥服务器

1
gpg --keyserver hkp://pgp.mit.edu --send-keys C4680761F0FA1B160A3172438AB8CAF822578AA1

(五) 配置 Maven 服务器账户

~/.m2/settings.xml

1
2
3
4
5
6
7
<servers>
<server>
<id>oss</id>
<username>用户名</username>
<password>密码</password>
</server>
</servers>

(六) 完善项目 pom.xml 信息.

为了能够更好的通过 Sonatype 的流程审核,请完善项目 pom.xml 文件中的必要信息;我建议这里请参考我的这个项目进行完善:点我打开

(七) 部署与上传

由于在 Mac 命令行中秘钥的 passphrase 弹出框无法有效执行,需要加入下面命令。

1
export GPG_TTY=$(tty)

开始部署上传

1
mvn clean deploy -P release

(八) 在 Sonatype OSS 控制台操作

  • 打开 OSS 控制台 https://oss.sonatype.org/
  • 用上面操作注册的账号登录进去;
  • 打开左边菜单 Staging Repositories;
  • 面板打开后右上查询框查询你的 groupId;
  • 状态目前是 open,然后点击上面的 Close 按钮,不出问题再点击 Release。

(九) 留言评论之前创建的 Issue

当工作人员回复之后,等待 2 个小时就可以在中央仓库看到你的 groupIdartifact 了。

参考资料

https://my.oschina.net/songxinqiang/blog/313226

题外话

密钥管理

上述所生成的密钥为了方便之后电脑重装或更换电脑不慎丢失等问题,请采用下列方式对密钥进行相应的处理,然后再把密钥文件进行妥善管理,切记,切记,切记!

查看密钥

1
gpg --list-keys

导出公钥

1
gpg --armor --output public-key.pem --export caryyu

导出私钥

1
gpg --armor --output private-key.pem --export-secret-keys caryyu

导入密钥

1
gpg --import public-key.pem