使用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 Project
Summary
:写个标题做个简单概述你要做啥。真不知道写什么,直接把项目名称写上就行,我就这么干了哈。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.org
Group Id
=org.zhangxiao.paladin2
- 例2:
Project URL
=https://github.com/michaelzx/Paladin2
Group 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都是中文,赞