从零开始上传开源项目到Maven中央仓库

本文从零开始详细讲解如何将开源项目上传到Maven中央仓库,包括注册Sonatype JIRA账号,创建工单,验证GroupId,配置Maven项目及打包上传等步骤,最后总结常见问题和经验心得。
摘要由CSDN通过智能技术生成

介绍

第一次比较正式的开源的自己的项目,心里还是很激动的,于是迫不及待的想要上传到Maven中央仓库,方便使用者引用。本教程将会从零开始讲解,但是由于时效的变化,在每个过程还是需要读者本身自己思考如何处理遇到问题。

简单讲解一下上传到Maven中央仓库流程

  1. 首先我们需要创建一个Sonatype JIRA的账号,这个平台可以理解为一套工单跟踪系统,它和Maven仓库可以说没有关系,也可以有关系。
  2. 创建好上述账号后,我们需要创建一个工单,此工单的作用便是新建一个开源的Maven工程
  3. 工单创建好后后台管理员会审核你提交的信息,在审核以及各种准备都完成后,你便可以登录给你分配的nexus repository manager平台管理你发布的maven归档。这里需要注意,这并不是中央仓库,这是给你分配的一个maven私服之一,当然最终会同步到中央仓库。
  4. 配置我们的开源项目并部署到分配的maven私服。
  5. 在私服访问归档是实时的,但是同步到中央仓库是需要时间的。
  6. 好了,大体流程就这样,下面我们就一步步来探索吧。

Maven(sonatype)账号准备

1.注册Sonatype JIRA账号

https://issues.sonatype.org/secure/Signup!default.jspa这个连接便是注册地址,下方是图片
在这里插入图片描述
按照提示注册即可,没有什么需要说的,唯一需要说的就是账号密码记录清楚,毕竟这个不常用。注册完成后就登录

2.创建工单

点击下方的Create按钮,界面风格可能在以后有变动,但是大体意思很明确,那就是找到创建工单的地方
在这里插入图片描述

Proejct选择(Community Support - Open Source Project Repository Hosting (OSSRH)),这里面选项很多,我们选的这个选项意思就是(社区支持的开源项目托管库OSSRH-我们就可以理解为这就是Maven私服仓库)
在这里插入图片描述

根据下方的表格提示填入内容,这里说明一下

  • Summary就是你的项目名
  • Description选填
  • GroupId(这个是最重要的,后台管理员审核的也是这个,往下看会专门介绍GroupId如何写,当然这个在创建成功后也可以改)
  • Project URL 你的项目官网或者git地址都可以的
  • SCM url 你的开源仓库地址,比如github,gitee等等
  • username 你的牛逼名称
    在这里插入图片描述

3.验证GroupId

由于我都已经把所有流程创建好了,所以我只能根据工单的变化日志来写教程了。最开始我的GroupId是org.pettyfox.timeline
在这里插入图片描述
上图大概意思是说你是否拥有pettyfox.org,本来想去买个.org域名的但是遗憾的发现,目前国内买不了,因此我便更改GroupId为com.pettyfox.timeline,在之前我是拥有pettyfox.com域名的,

基于域名验证

Do you own the domain pettyfox.org? If so, please verify ownership via one of the following methods:

Add a TXT record to your DNS referencing this JIRA ticket: OSSRH-71087 (Fastest) https://central.sonatype.org/faq/how-to-set-txt-record/
Setup a redirect to your https://github.com/mathcoder23 page (if it does not already exist)

大体意思就是在域名的根解析中加一个TXT类型的解析,并且内容是OSSRH-71087这里你的根据你自己的OSSRH-xxx来更改,这个域名操作应该很简单吧,我就不贴步骤了。这样做的目的很简单,就验证你是否是这个域名的拥有者。

关于域名与GroupId的关系:如果我们拥有域名 比如opensource.com,那么GroupId必须是com.opensource开头,后面怎么写不重要.

基于开源仓库的验证

有时候我们没有域名,并且也不想去买,那么我们可以通过开源仓库的平台来验证,比如GitHub、GitLab、Gitee、Bitbucket、SourceForge
下面是官方的引导教程

If you do not own this domain, please read: https://central.sonatype.org/publish/requirements/coordinates/

You may also choose a Group ID that reflects your project hosting, in this case, something like io.github.mathcoder23
Edit your Group Id and create public repo called https://github.com/mathcoder23/OSSRH-71087
https://central.sonatype.org/publish/requirements/coordinates/#supported-code-hosting-services-for-personal-groupid

com.github Group IDs are invalid now but io.github may be used instead. Please read the following for more info: https://central.sonatype.org/changelog/#2021-04-01-comgithub-is-not-supported-anymore-as-a-valid-coordinate

If you decide to change your Group ID, please edit this ticket and update the Group ID field.

首先你可以进入 https://central.sonatype.org/publish/requirements/coordinates/查看详细的步骤。
下面是GroupId与项目名称的对应关系,安装对应的教程来操作即可
在这里插入图片描述
最关键的一步应该就是创建一个公开仓库名为OSSRH-xxx或者在github的pages网页中创建OSSRH-xxx

GroupId的验证基本上就是这样,其中最关键的还是根据管理员推送的GroupId验证指导来,仔细阅读他说的内容即可,这才是最好的方案,因为这些流程随时可能会更新、废弃等等。

4.流转工单状态

这一步的作用就是告诉管理员我们的准备做好了,你帮我处理一下。
我这里已经是RESOLVED了,你们的应该是OPEN,我忘记在哪里点了,反正在红框中找到某个按钮将状态改为:WAITING FOR RESPOSE即等待响应
在这里插入图片描述

变更OPEN为等待响应状态
在这里插入图片描述

5.工单处理完成

如果一切顺利,大约几分钟就会有结果,结果如下,最终的工单状态会变成RESOLVED
在这里插入图片描述
第一行的变更组名不过在意,下方的消息就是告诉我已经验证我是com.pettyfox的拥有者,
告诉我的Maven私服管理地址是https://s01.oss.sonatype.org这里需要注意的是你的地址到底是哪个需要根据评论的内容来,因为在以前是oss.sonatype.org,我的内容如下

com.pettyfox.timeline has been prepared, now user(s) pettyfox23 can:
Publish snapshot and release artifacts to s01.oss.sonatype.org
Have a look at this section of our official guide for deployment instructions:
https://central.sonatype.org/publish/publish-guide/#deployment

Please comment on this ticket when you've released your first component(s), so we can activate the sync to Maven Central.
Depending on your build configuration, this might happen automatically. If not, you can follow the steps in this section of our guide:
https://central.sonatype.org/publish/release/

######

As part of our efforts to improve the security and quality posture of the open source supply chain,
we plan to enable additional scanning of dependencies for security alerts soon. Since you're already
hosting your source code in Github, you can get insights into code and dependency quality today by enabling
the free Muse code quality scan. This will provide feedback right in your pull requests.
More information can be found at https://www.sonatype.com/product/musedev-maven

######

上面的文字就是告诉我们Maven仓库地址,以及快照地址、正式版地址
这里要注意一个坑,Please comment on this ticket when you've released your first component(s), so we can activate the sync to Maven Central.这里说了一句你必须评论一次(最下方Comment发一条内容),才能激活组件同步到中央仓库

6.登录nexus repository manager

由上述官方回复的内容可知,我们的nexus repository manager地址是https://s01.oss.sonatype.org,并且账号密码与Sonatype JIRA的账号密码相同
登录后页面如下
在这里插入图片描述
为了后续方便maven打包上传验证,我们申请基于Token的方式验证

7.nexus repository manager平台生成User Token

此步骤可以在后面打包上传时来完成,可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值