使用gpg插件发布jar包到Maven中央仓库 完整实践

本文记录了在maven环境下使用gpg插件将 jar 包部署到中央仓库并快速检验和更新的完整实践过程。相对于网上其他教程使用oss-parent作为父工程的方法,这种方法入侵度低,自由度高,也是官方推荐使用的。实践过程解决了gpg验证以及javadoc注解不规范的问题。

先行知识

1 项目基础配置

首先需要注意项目的 groupId,下文注册sonatype账号时也需要填写 groupId ,两者最好一致,并确保你拥有该域名所有权,我推荐用GitHub个人主页作为对应地址。格式为 com.github.username
本文以如下配置为例:

    <groupId>com.github.linshenkx</groupId>
    <artifactId>rpc-netty-spring-boot-starter</artifactId>
    <version>1.0.0.RELEASE</version>

2 Maven发布相关网址

在整个发布过程中,有以下3个关键网址,注意前2个共用一个账号。

  1. 工单管理:https://issues.sonatype.org
    负责申请上传资格及完成第一次上传,后续更新不需要使用,相当于一个启动装置。
  2. 构件仓库 : https://oss.sonatype.org
    上传的jar包会先存放到这里,在这里进行 Release 后即可发布到maven中央仓库。
  3. 镜像仓库: http://search.maven.org
    最终成功发布的jar可以在这里搜到。

3 发布事项

网上有些人说使用相同版本号部署可以覆盖原版本,经试验是不行的,也很好理解,对于同一个版本的jar包,怎么可能因为拉取时间的不同而导致获得内容的不同呢?所以,应该将每一次上传部署都看作不可逆操作,谨慎对待。

一 注册并提交工单(register sonatype)

首先进入 https://issues.sonatype.org 注册账号并登录
然后点击最上面的 Create创建Issue,选择Project和Issue Type如下
Create Issue
除了这两个选择项外,其他的必填项按照提示填就好,需要特别注意的是,你要拥有GroupId对应的域名的所有权,私有域名的话需要验证所有权会比较麻烦(在Attachment项提供证书),个人的话最好就是使用项目对应托管平台的主页,这样可以省去验证的步骤。创建完成可见如下:
注意这个过程是需要后台管理员审核的,一般在2个小时左右即会有回复,在审核通过之前 Issue 的状态将是 open,通过后为 resolved ,有问题的话 Resolution 将显示 Unresolved 直到你解决后才会显示为 Fixed。
在这里插入图片描述
项目的驱动将通过Comments来进行,如下,通过后管理员将添加如下comment

Configuration has been prepared, now you can:
Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots
Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2
Promote staged artifacts into repository ‘Releases’
Download snapshot and release artifacts from group https://oss.sonatype.org/content/groups/public
Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/content/groups/staging

前面两个仓库用于上传,分别对应工程的 snapshots版本和 release版本,要配置到pom文件里。
发布成功的工程可以通过后面两个仓库查看和下载,晚点会同步到中央仓库里。

二 使用gpg生成密钥

这一步我主要参考了官方指南 https://central.sonatype.org/pages/working-with-pgp-signatures.html 上面用命令行的方式一步步写得很清楚了,不过我发现其过程比较适用于Linux环境,Windows环境下有所不同
我使用的环境是window和maven,使用mac和gradle的也可以参考,但后面maven配置具体步骤会有不同,需要注意。
这里我推荐使用gpg的gui工具,可视化生成密钥,也可以使用命令行。
Windows的话先到 https://gpg4win.org/download.html 下载最新的版本,直接安装即可打开即可

  1. 新建密钥对(OpenPGP类型)
    这里需要填入名字和电子邮件,然后注意可以在高级设置那里将有效期一栏的小勾取消掉,即有效期无限,如下
    新建密钥对
  2. 确认信息并输入密码
  3. 选择将公钥上传到目录服务
    注意:如果这里不点的话后面分发后将无法在服务器找到对应公钥
    选择将公钥上传到目录服务
  4. 右键选择生成的证书在服务器上发布
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值