好记性不如烂笔头啊,把做完的一件事记下来是个不错的习惯。这个流程说实话我走过很多次了,但是每次同事问我怎么搞的时候,我发现我还是需要去看文档+谷歌,而且竟然每次都能发现不一样的方法,当然这些方法的本质是一样的。
以前还折腾了Gradle上传到中央仓库,以及上传到三方仓库然后代我转移到中央仓库等等等。当初还是懵懵懂懂的就直接用Gradle去上传,不是不行,按照我的经验来说还是建议先通过Maven熟悉整个过程懂得原理后再用Gradle也不迟。
经历这些折腾,我总结出以下目前我认为最方便的经验。
- 注册帐号并创建工单(已创建过工单可略过)
网址:issues.sonatype.org/secure/Dashboard.jspa
新建账号,登录后选择Create Issue,选择Community Support - Open Source Project Repository Hosting (OSSRH)以及New Project。
提交完毕后等待工作人员审核,工作人员会审核你提交的issue,主要审核内容为你是否具备这个groupId的所有权。所以个人的开源项目,我推荐groupID为你个人的github地址,如:com.github.username。 - 生成密钥并上传
Windows的gpg可以在git的安装目录中找到。
# 具体信息按照自己的需求填写,密钥的密码会在上传的时候用到
gpg --gen-key
...
...
...
生成密钥完毕后上传密钥
# 列出密钥
gpg --list-keys
/c/Users/hanzi/.gnupg/pubring.kbx
---------------------------------
pub rsa2048 2018-11-30 [SC]
C4437BA4AE78DC911111117303966D5033970CC
uid [ultimate] ziyuan <example@outlook.com>
sub rsa2048 2018-11-30 [E]
# 如我的密钥为C4437BA4AE78DC911111117303966D5033970CC,上传该密钥
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys C4437BA4AE78DC911111117303966D5033970CC
- 配置项目的pom.xml
增加以下配置:
<!-->这里继承它的原因是它包含了一些必备的配置,如中央仓库地址、maven-javadoc-plugin插件、maven-gpg-plugin插件等<-->
<!-->注意,如果是多模块项目,就需要自己配置而不能直接继承了。可通过mvn clean deploy -pl ***来指定发布特定的子模块<-->
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<!-->项目的协议<-->
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>actable</distribution>
</license>
</licenses>
<!-->开发者的信息<-->
<developers>
<developer>
<name>example</name>
<email>example@outlook.com</email>
</developer>
</developers>
<!-->项目的版本管理地址<-->
<scm>
<url>https://github.com/Bpazy/Id</url>
</scm>
- 配置Maven(~/.m2/setting.xml)
增加以下配置:
<!-->这里配置的是sonatype的信息,上一步中继承的oss-parent会用到这些信息<-->
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>上面第一步时注册的帐号</username>
<password>上面第一步时注册的密码</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>上面第一步时注册的帐号</username>
<password>上面第一步时注册的密码</password>
</server>
</servers>
- 上传
这一步会要求你输入生成密钥指定的密码
mvn clean deploy -P sonatype-oss-release
-
在oss.sonatype.org发布jar包
点击左侧的Staging Repositories
滑到最下面,选中刚上传的一项点击close
,此时网站会检查刚上传的jar包是否符合要求,检查完毕后状态会变为closed
,这时点击Release
,等待约两小时即可在search.maven.org搜索到你发布的jar包。 -
升级jar包或上传新的同groupId下的包
直接第5、6
步即可。