注册sonatype账号
地址:https://issues.sonatype.org/secure/Signup!default.jspa
- 记住用户名和密码,后面会频繁使用。
创建一个issue
地址:https://issues.sonatype.org/secure/Dashboard.jspa
使用上面注册的用户名和密码登录。
- 不要修改
Project
和Issue Type
,使用默认值即可。
- 其他的值请参考例子。
创建完成后,1个工作日以内工作人员会回复你的Issue,如果通过的话,内容如下,如果不通过,那你就检查后再试试吧。
使用 GPG 生成密钥对
如果mac上没有gpg命令,可以使用下面的命令进行安装:
1 | brew install gpg |
如果mac上没有brew命令,需要先安装brew命令:
1 | ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" |
- 安brew命令需要先打开Xcode并同意条款。
安装成功gpg命令后,生成密钥:
1 | gpg --gen-key |
输出信息:
1 | gpg (GnuPG) 2.2.1; Copyright (C) 2017 Free Software Foundation, Inc. |
提示输入名字, 如:kangyonggan
1 | Email address: |
又提示输入邮箱, 如:`java@kangyonggan.com`
1 | You selected this USER-ID: |
选择okay, 输入:o
然后弹框要求输入密码, 这个密码后面会用到,别忘记了。
之后会让你再次输入密码,到此密钥就生成成功了,输出信息如下:
1 | We need to generate a lot of random bytes. It is a good idea to perform |
需要记住7A98F7517B453D562425F564C38B01CFC194AE3C
,会面会有用,记不住也没关系,可以使用下面的命令查看。
1 | gpg --list-keys |
输出:
1 | gpg: checking the trustdb |
将公钥发布到 PGP 密钥服务器
1 | gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 7A98F7517B453D562425F564C38B01CFC194AE3C |
输出信息如下:
1 | gpg: sending key C38B01CFC194AE3C to hkp://keyserver.ubuntu.com:11371 |
说明密钥已经发布成功了,也可以使用命令查看有没有发布成功。
1 | gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7A98F7517B453D562425F564C38B01CFC194AE3C |
输出:
1 | gpg: key C38B01CFC194AE3C: "kangyonggan <java@kangyonggan.com>" not changed |
配置setting.xml
1 | <servers> |
server的id随意填写,只要和pom.xml里面对应就行了。
配置pom.xml
1 | <name>Method Logger</name> |
如果你的英文很六,description标签最好用英文来写,逼格更高。其他值你看着填写就好。
repository->id 要和 setting.xml 中的保持一致。
上传构件到 OSS 中
1 | mvn clean deploy -P release |
当执行以上 Maven 命令后,如果顺利,就会看见一堆upload信息,部分输出如下:
1 | [DEBUG] Using transporter WagonTransporter with priority -1.0 for https://oss.sonatype.org/service/local/staging/deploy/maven2/ |
- 注意:此时上传的构件并未正式发布到中央仓库中,只是部署到 OSS 中了,下面才是真正的发布
发布构建
地址:https://oss.sonatype.org/#stagingRepositories
需要使用之前注册的sonatype账号登录。
点击Staging Repositories
菜单,并拉至最下方,会看见自己刚刚deploy的jar包
选择此构建后,点击Close
,如下图:
系统会自动验证该构件是否满足指定要求,当验证完毕后,状态会变为 Closed。然后点击Release
。
通知 Sonatype 构件已成功发布
找到之前创建的Issue,并回复:构建已发布
等待构件审批通过
等待大概一个工作日内,如果审核通过,Issue会有回复:
- 大概需要2个小时才能把jar同步到中央仓库。
从中央仓库搜索自己发布的jar
地址:http://mvnrepository.com/
搜索,如:com.kangyonggan
, 结果如下:
据我实际测试发现,大概release之后不超过20分钟,就可以在https://repo.maven.apache.org/maven2/这里查看到了,只要这里有了,别人就可以依赖这个jar了。
- 二次发布同一个构建(只要groupId不变)的过程就不用这么麻烦,后面就不用再Issue中操作了。