一、前言
最近自己在学习Spring boot的过程中开发了一个组件 multithreadpool-spring-boot-starter,通过这个组件,我们可以动态根据配置文件进行多个线程池的初始化。既然有这个产出后,肯定是希望能够上传到maven中央仓库,给更多的人使用,于是就产生了这次项目发布经历。
整个过程可谓是一波三折,由于平时工作比较忙只能晚上花一个小时搞,所以在经历了近一周的时间后,终于成功发布上去了。
下面把我当时的上传过程记录下来,希望帮助更多的朋友。
二、环境准备
1> mac osx 10.14.6 : 本文主要以mac环境为准
2> Apache Maven 3.2.3 : 本文主要使用maven进行构建和发布例子的说明
三、步骤说明
1、工单创建
1> 访问sonatype并注册账号 https://issues.sonatype.org ,注意要记住账号密码,会用于我们后续的发布及相关操作
2> 如图新建一个issue,项目需要选择 Community Support - Open Source Project Repository Hosting
3> 参考下图填写概要、Group Id、项目地址、代码管理地址,填写后点击确认提交。网上很多都说需要几个小时或者隔天才有回复,我当时等了10分钟就收到回复了。此时,对方跟你说两件事情:
- 【提醒】确保 group id对应的域名是你的
- 【校验】比如我是的项目地址是github上的,他会要求我在github上创建一个和issue同名的项目确保我拥有该项目的管理权限,
完成确认并创建和issue同名的项目后,记得要在issue进行回复,具体参考: sonatype-issue 和 Github仓库
4> 在通过上述的确认和校验后,sonatype会回复你到时候maven发布会用到的snapshot地址和release地址,并提醒你首次发布后需要回复该issue,详情参考issue
2、gpg 环境安装
gpg的主要作用是生成密钥对,会用于后续我们组件发布的校验。
1> 下载地址:https://www.gnupg.org/download/
2> 如图红色框所示下载并安装
3> 在安装完成后,执行以下命令生成密钥对,按照提示输入账号、邮箱、密码 (PS: 此处的密码在后面发布会用到,请务必记住)
gpg2 --gen-key
4> 执行命令查看密钥, 此时控制台会输出类似下面的内容
$ gpg2 --list-keys
...
pub rsa2048 2019-04-12 [SC] [有效至:2021-04-11]
9A1640F7A2551131612D51B12D83594B7B29D86A
uid [ 绝对 ] xiaoxuetu <xiaoxuetu@163.com>
sub rsa2048 2019-04-12 [E] [有效至:2021-04-11]
5> 执行以下命令将公钥发布到服务器中
$ gpg --keyserver hkp://subkeys.pgp.net --send-keys 9A1640F7A2551131612D51B12D83594B7B29D86A ... gpg: 正在发送密钥 2D83594B7B29D86A 到 hkp://subkeys.pgp.net gpg: 发送至公钥服务器失败:Server indicated a failure gpg: 发送至公钥服务器失败:Server indicated a failure
6> 如果控制台输出如上面类似的错误内容,则将命令中的密钥调整为 2D83594B7B29D86A
$ gpg --keyserver hkp://subkeys.pgp.net --send-keys 2D83594B7B29D86A
gpg: sending key 2D83594B7B29D86A to hkp://pool.sks-keyservers.net
3、Maven全局配置
一般情况下,maven全局配置存在于