使用Gradle发布构件(Jar)到Maven中央仓库
OSSRH
在开始之前,先对OSSRH做下了解是很必要的,因为一开始,我并不知道这是个啥玩儿意。我想和我一样的人应该还是有很多的。OSSRH:Sonatype Open Source Software Repository Hosting Service,为开源软件提供maven仓库托管服务。你可以在上面部署snapshot、release等,最后你可以申请把你的release同步到Maven Central Repository(Maven中央仓库)。
个人的理解,OSSRH是Maven中央仓库的前置审批仓库,只有你完全符合了发布要求,成功的将你的项目发布到了OSSRH,才有机会申请同步到Maven中央仓库。
这篇主要是记录这整个流程,方便以后自己查阅,同时可以帮助到想做同样事情的朋友。
1、注册Sonatype JIRA账号
JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
网址:https://issues.sonatype.org/
无非就是填写下注册信息,没有什么特别的
2、创建一个Issue
填写资料
可以在头部看到一个Create的按钮

会弹出Create Issue表单

Project:选择Community Support - Open Source Project Repository Hosting (OSSRH)Issue Type:选择New ProjectSummary:写个标题做个简单概述你要做啥。真不知道写什么,直接把项目名称写上就行,我就这么干了哈。Group Id:自己有域名
可以使用子域名作为Group Id。例:我的项目叫paladin2,那么就用org.zhangxiao.paladin2作为Group Id注意:不能瞎编一个,因为后面审核人员会来审核你是否是该域名的拥有者
- 自己没域名
可以借助github,例:我的用户名为michaelzx,那么就用com.github.michaelzx.paladin2作为作为Group Id
Project URL:要与Group Id一定关联性- 例1:
Project URL=http://paladin2.zhangxiao.orgGroup Id=org.zhangxiao.paladin2 - 例2:
Project URL=https://github.com/michaelzx/Paladin2Group Id=com.github.michaelzx.paladin
- 例1:
SCM url:版本仓库的拉取地址
等待回复
如果有问题,老外在评论中把问题给你指出来,可以在原有的issue把资料改正确
我之前是犯了个低级的错误把Group Id写成了域名
审核人员要处理的issue很多,你可能要耐心等待一会,不要急
我之前急了,就重新提交了2个新的issue,最后管理员还是耐心的把重复的issue关闭
如果一切顺利,那么你会收到审核人员,这样的一个评论:

3、准备工作
文件要求
为了确保中央存储库中可用组件的质量水平,OSSRH对提交的文件有明确的要求。
一个基础的提交,应该包含一下文件:
example-application-1.4.7.pom example-application-1.4.7.pom.asc example-application-1.4.7.jar example-application-1.4.7.jar.asc example-application-1.4.7-sources.jar example-application-1.4.7-sources.jar.asc example-application-1.4.7-javadoc.jar example-application-1.4.7-javadoc.jar.asc
- 除了jar包和pom文件,
Javadoc和Sources是必须的,后面会说到用Gradle的一些插件来生成 - 每个文件都有一个对应的
asc文件,这是GPG签名文件,可以用于校验文件
GPG
安装
说明:后续过程均在OSX环境下
OSX下可以通过brew来安装GPG命令行工具
$ brew update $ brew install -v gpg
你会发现从brew的GPG命令行工具,做了国际化支持,连help都是中文,赞