Appearance
发布Jar包
- 把核心代码core和component模块,发布Jar包
一、发布准备
- 首次把pom模块,以jar包的形式,发布到Maven仓库。
- 发布仓库:maven中央仓库
提示
- 首次发布,要登入[Sonatype中央仓库]注册账户、创建命名空间等,进行一些准备工作。
- 下面进行详细步骤讲解,准备开始。
- 1.1 注册Sonatype账号,登录
- 进入Sonatype中央仓库官网,点击右上角Sign In按钮,注册账号。
- 已有账号,可以登录。没有账号,则点击 Sign Up 按钮注册。
- 输入注册信息:用户名、邮箱、密码,点击 Continue 按钮。
- 邮箱会收到一封邮件,点击激活链接,完成注册。
提示
- 我使用的QQ邮箱,偶发收不到邮件的问题,且没找到原因。
- 因此建议使用live.com、g-mail等国际邮箱注册。
- 1.2 创建命名空间
- 点击右上角 用户名,在下拉列表中,点击 View Namespaces 按钮。
- 点击 Add Namespace 按钮。
- 输入命名空间的名称,点击 Submit 按钮。
注意
- 命名空间名称,一般指你项目自己的groupId,例如:本站项目的groupId,如下图
- 我是用的gitee.com开源代码托管平台,因此填写 io.gitee.xxx 即可
- 若使用github.com,则填写 io.github.xxx
- 若想使用自己的域名,则需要完成域名备案,且能够解析txt记录,因为验证命名空间时需要验证txt信息。 (如果这条不懂,可以忽略,使用gitee或github即可)
- 验证命名空间:进入如下页面,点击 Verify Namespace 按钮,弹出验证窗口,如下图。
提示
- 注意上图标记3,因为我的命名空间是 io.gitee.ziro 就会自动对应到 https://gitee.com/ziro/... 域名下验证。
- 如果填写的是自定义域名,则会验证域名解析的txt值
- 登录gitee,创建一个如下图所示的开源仓库。
- 创建完成后,回到第4布,点击 Confirm 按钮,提示验证中。
- 等待验证成功,至此命名空间创建完成。
提示
- 验证完成之后,刚刚创建的公开仓库(或自定义域名的TXT记录)就可以删除了。
- 1.3 创建Maven发布时的Token
- 点击右上角用户名,在下拉列表中,点击 View Account 按钮。
- 打开页面后,点击 Generate User Token 按钮。
- 点击 OK 按钮。
- 随机生成 Username 和 Password,拷贝配置信息。
提示
- 弹窗1分钟后会自动关闭,注意及时复制出来。
- 可以重新生成(重复2、3步即可),
- 把Username和Password配置到Maven的setting.xml文件中。
- Maven安装目录,打开conf/setting.xml文件,在
<servers>
标签下添加如下配置 - 把
<id>${server}</id>
改为<id>central</id>
二、发布Jar包
- 2.1 生成GPG密钥对
- GPG 的主要作用是生成密钥对,发布到 Maven 仓库中的所有文件都要使用 GPG 签名,以保障完整性。
- 打开 git bash 或 命令行工具(gpg4win),输入命令:
cmd
gpg --gen-key
- 按照提示,输入以下信息:
- 提示输入姓名(随便填),按回车;
- 接着提示输入邮箱(自己的常用邮箱),按回车;
- 再输入大写字母O(表示Okay),按回车
- 稍等一会,会弹出输入密码弹窗:输入密码,,点击OK按钮。
- 再次弹窗,确认密码(两次输入密码要一致),点击OK按钮。
- 稍等一会,密钥生成成功,会返回密钥ID、姓名、邮箱等信息。
- 把这个秘钥上传至公钥服务器,输入一下命令(密钥ID就是刚刚返回的密钥ID):
cmd
gpg --keyserver keyserver.ubuntu.com --send-keys <密钥ID>
- 看到以下提示,表示上传成功。
- 然后使用命令验证,是否真的上传成功:
cmd
# 查询自己上传的公钥
gpg --list-keys
# 验证某个密钥ID是否上传成功
gpg --keyserver keyserver.ubuntu.com --recv-keys <密钥ID>
- 至此,GPG密钥配置已完成。
- 2.2 配置pom.xml文件
- 配置pom.xml信息,准备发布jar包。
注意
- pom.xml是项目的pom文件,开发时也要用到;因此为了方便开发,将开发的xml和发布的xml分开
- 复制 pom.xml 文件,重命名为 jar.xml
- 这样 pom.xml 不变,留作开发;jar.xml 作为发布的配置文件
- 对比 pom.xml 和 jar.xml 文件,确定相同和不同的地方。
- jar.xml 共分为10部分:
- 1)parent:继承的父项目信息
- 2)本项目信息:groupId、artifactId、version等
注意
- groupId信息必须和 1.2 创建命名空间时填写的命名空间一致
- 3)依赖信息
- 4)开源许可证信息
- 5)源码仓库信息
- 6)开发者信息
- 7)Sonatype中央仓库发布插件
- 8)源码打包插件
- 9)javadoc文档生成插件
- 10)gpg插件
详细配置可以进入源码仓库查看:
Component模块的jar.xml文件
Core模块的jar.xml文件
- 2.3 开始发布
- 准备工作完成,可以开始发布jar包了。
TIP
- 本项目 component 和 core 模块,是两个单独模块,需要分别发布。
- core 模块依赖 component 模块,因此先发布 component 模块。
- 发布 component 模块,进入 component 模块所在目录
- 打开 Git Bash
- 运行打包命令,回车,开始发布
cmd
mvn clean deploy -f jar.xml
提示
- 如果使用的是 gpg4win,不需要打开git bash,直接在命令行工具cmd中运行命令即可。
- 开始发布,等待一段时间,会弹出输入密码的窗口,输入[2.1生成GPG密钥对]时设置的密码,点击OK按钮。
- 等一致出现 “[INFO] BUILD SUCCESS” 字样,表示发布成功。
- 同样步骤,切换到 core/jar.xml 文件所在目录,发布 core 模块。
- 已发布到中央仓库,下面进入中央仓库,正式 release。
打开刚才登录的Sonatype中央仓库,点击 View Deployments 选项卡。
能够看到刚刚 deploy 的两个jar包,如下图所示:
- 上面显示
VALIDATED
说明我们的项目是符合发布要求的。
分别点击 Publish 按钮,进行发布。显示 PUBLISHING
字样,表示正在发布中。
等待 10-20 分钟左右,点击 Refresh 按钮,刷新页面,能够看到发布成功。
- 2.4 查看已发布的jar包
- 两个方法验证,在中央仓库查看 maven中央仓库地址
进入该目录,查看刚才发布的jar包。
- 在 Sonatype 中央仓库首页,搜索查看 Sonatype中央仓库地址
进入首页后,输入名称,点击回车搜索:
- 如下图所示,能看到发布的jar包及历史版本。
三、版本更新发布
- 有2种情况:
若发布电脑没有更换,则从 【2.3 开始发布】 步骤开始,重新发布即可。
若发布的电脑更换了,或者GPG密钥对过期了,则重复【2.1 生成GPG密钥对 和 2.3 开始发布】,两个步骤。
提示
- 若 maven 环境变了,则需要重新设置【1.3 配置Maven发布时的Token】中的配置