本文将详细介绍所有向Maven中央仓库提交SDK(对于JAVA即是jar包)的流程。如果您已经完成了整个流程但遇到一些问题,可以直接跳到文末,那里总结了很多遇到的问题以及解决的方案。
1. sonatype工单
为了向Maven中央仓库提交SDK,我们首先要向sonatype系统提交工单
-
如果没有账户,首先注册账户
-
选择Create Issue 创建发布 按照要求填写信息
-
其中需要注意的是,groupId就是我们jar包导入时的groupld,一般我们使用域名
-
点击确定后需要等待工作人员review,美国有时差,往往需要一天的确认时间
-
工作人员确定后,Issue的状态会变为绿色的RESOLVED
-
开通时工作人员会在Issue下面的comments回复信息,信息包含了我们发布release、snapshots版本的地址。这个地址我们之后配置要用到,我们发布自己的包到这两个地址。
2.GPG
GPG是一种加密签名命令行工具,maven官方要求在上传时使用这个软件做加密。在向Maven中央仓库提交SDK的过程中,安装并启用GPG主要需要进行以下四个步骤。
2.1 安装
# mac 环境
brew install gpg
# Debian / Ubuntu 环境
sudo apt-get install gnupg
# Fedora / CentOS环境
yum install gnupg
2.2 验证是否安装成功
# mac 环境
# mac环境一切gpg开头的命令,都需要使用gpg2代替
gpg2 --help
# 其他环境
gpg --help
2.3 生成密钥
输入下面的命令后,会进行一系列步骤,基本都选择默认选项即可。还会被GPG要求填写真实姓名,填写电子邮箱。之后需要输入一个私钥密码,这个私钥密码用来保护我们的私钥不被滥用,输入一个密码并记住它。具体为什么需要进行上述这些步骤,可见GPG简介。
gpg --gen-key
2.4 上传公钥
生成后要将公钥上传至服务器。下述命令最后用自己的公钥替换,公钥是一串十六进制的数字,例:DE346FA5。请不要使用上述举例的公钥,要使用上一步自己生成的公钥。
gpg --keyserver http://http-keys.gnupg.net --send-keys 你的公钥
3. /.m2/setting.xml
setting.xml文件用来进行账户密码的配置。
理论上,如果我们想让整台机器都能适用这个上传功能,我们应该在conf/目录下的setting.xml文件进行配置。但一般情况下在.m2/目录下配置就能满足需要,还有就是有时我们没有修改conf/目录下文件的权限。
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>注册sonatype工单的用户名</username>
<password>注册sonatype工单的密码</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>注册sonatype工单的用户名</username>
<password>注册sonatype工单的密码</password>
</server>
<