Skip to content

发布Jar包

  • 把核心代码core和component模块,发布Jar包

一、发布准备

  • 首次把pom模块,以jar包的形式,发布到Maven仓库。
  • 发布仓库:maven中央仓库

提示

  • 首次发布,要登入[Sonatype中央仓库]注册账户、创建命名空间等,进行一些准备工作。
  • 下面进行详细步骤讲解,准备开始。

- 1.1 注册Sonatype账号,登录

进入Sonatype中央仓库官网注册账号

  • 已有账号,可以登录。没有账号,则点击 Sign Up 按钮注册。

登录Sonatype中央仓库

  • 输入注册信息:用户名、邮箱、密码,点击 Continue 按钮。
  • 邮箱会收到一封邮件,点击激活链接,完成注册。

注册Sonatype中央仓库激活Sonatype中央仓库

提示

  • 我使用的QQ邮箱,偶发收不到邮件的问题,且没找到原因。
  • 因此建议使用live.com、g-mail等国际邮箱注册。

- 1.2 创建命名空间

  1. 点击右上角 用户名,在下拉列表中,点击 View Namespaces 按钮。

创建命名空间

  1. 点击 Add Namespace 按钮。

创建命名空间

  1. 输入命名空间的名称,点击 Submit 按钮。

创建命名空间

注意

  • 命名空间名称,一般指你项目自己的groupId,例如:本站项目的groupId,如下图 groupId
  • 我是用的gitee.com开源代码托管平台,因此填写 io.gitee.xxx 即可
  • 若使用github.com,则填写 io.github.xxx
  • 若想使用自己的域名,则需要完成域名备案,且能够解析txt记录,因为验证命名空间时需要验证txt信息。 (如果这条不懂,可以忽略,使用gitee或github即可)
  1. 验证命名空间:进入如下页面,点击 Verify Namespace 按钮,弹出验证窗口,如下图。

验证命名空间

提示

  • 注意上图标记3,因为我的命名空间是 io.gitee.ziro 就会自动对应到 https://gitee.com/ziro/... 域名下验证。
  • 如果填写的是自定义域名,则会验证域名解析的txt值
  1. 登录gitee,创建一个如下图所示的开源仓库。

创建开源仓库

  1. 创建完成后,回到第4布,点击 Confirm 按钮,提示验证中。

验证命名空间

  1. 等待验证成功,至此命名空间创建完成。

命名空间创建成功

提示

  • 验证完成之后,刚刚创建的公开仓库(或自定义域名的TXT记录)就可以删除了。

- 1.3 创建Maven发布时的Token

  1. 点击右上角用户名,在下拉列表中,点击 View Account 按钮。
  • 打开页面后,点击 Generate User Token 按钮。

创建Maven发布时的User Token

  1. 点击 OK 按钮。

创建Maven发布时的User Token

  1. 随机生成 Username 和 Password,拷贝配置信息。

创建Maven发布时的User Token

提示

  • 弹窗1分钟后会自动关闭,注意及时复制出来。
  • 可以重新生成(重复2、3步即可),
  1. 把Username和Password配置到Maven的setting.xml文件中。
  • Maven安装目录,打开conf/setting.xml文件,在<servers>标签下添加如下配置
  • <id>${server}</id> 改为 <id>central</id>

配置setting.xml文件

二、发布Jar包

- 2.1 生成GPG密钥对

  • GPG 的主要作用是生成密钥对,发布到 Maven 仓库中的所有文件都要使用 GPG 签名,以保障完整性。

提示

  • 有2种生成gpg的方法:
  1. 若本机安装了git,打开git bash,即可运行 gpg 命令 生成GPG密钥对
  2. 若没有安装git,可以安装 gpg4win 软件(专门的gpg工具),来运行。GPG4Win下载地址
  1. 打开 git bash 或 命令行工具(gpg4win),输入命令:
cmd
gpg --gen-key

生成GPG密钥对

  1. 按照提示,输入以下信息:
  • 提示输入姓名(随便填),按回车;
  • 接着提示输入邮箱(自己的常用邮箱),按回车;
  • 再输入大写字母O(表示Okay),按回车
  • 稍等一会,会弹出输入密码弹窗:输入密码,,点击OK按钮。
  • 再次弹窗,确认密码(两次输入密码要一致),点击OK按钮。

生成GPG密钥对

  1. 稍等一会,密钥生成成功,会返回密钥ID、姓名、邮箱等信息。

生成GPG密钥对

  1. 把这个秘钥上传至公钥服务器,输入一下命令(密钥ID就是刚刚返回的密钥ID):
cmd
gpg --keyserver keyserver.ubuntu.com --send-keys <密钥ID>
  1. 看到以下提示,表示上传成功。

生成GPG密钥对

  1. 然后使用命令验证,是否真的上传成功:
cmd
# 查询自己上传的公钥
gpg --list-keys

# 验证某个密钥ID是否上传成功
gpg --keyserver keyserver.ubuntu.com --recv-keys <密钥ID>

生成GPG密钥对

  • 至此,GPG密钥配置已完成。

- 2.2 配置pom.xml文件

  • 配置pom.xml信息,准备发布jar包。

注意

  • pom.xml是项目的pom文件,开发时也要用到;因此为了方便开发,将开发的xml和发布的xml分开
  • 复制 pom.xml 文件,重命名为 jar.xml 复制pom.xml文件
  • 这样 pom.xml 不变,留作开发;jar.xml 作为发布的配置文件
  1. 对比 pom.xml 和 jar.xml 文件,确定相同和不同的地方。

对比pom.xml和jar.xml文件

  1. jar.xml 共分为10部分:
  • 1)parent:继承的父项目信息
  • 2)本项目信息:groupId、artifactId、version等

注意

  • groupId信息必须和 1.2 创建命名空间时填写的命名空间一致
  • 3)依赖信息
  • 4)开源许可证信息
  • 5)源码仓库信息
  • 6)开发者信息
  • 7)Sonatype中央仓库发布插件
  • 8)源码打包插件
  • 9)javadoc文档生成插件
  • 10)gpg插件

jar.xml文件分为10部分

详细配置可以进入源码仓库查看:
Component模块的jar.xml文件
Core模块的jar.xml文件

- 2.3 开始发布

  • 准备工作完成,可以开始发布jar包了。

TIP

  • 本项目 component 和 core 模块,是两个单独模块,需要分别发布。
  • core 模块依赖 component 模块,因此先发布 component 模块。
  1. 发布 component 模块,进入 component 模块所在目录

进入component模块所在目录

  1. 打开 Git Bash

打开git bash

  1. 运行打包命令,回车,开始发布
cmd
mvn clean deploy -f jar.xml

运行打包命令

提示

  • 如果使用的是 gpg4win,不需要打开git bash,直接在命令行工具cmd中运行命令即可。 运行打包命令
  1. 开始发布,等待一段时间,会弹出输入密码的窗口,输入[2.1生成GPG密钥对]时设置的密码,点击OK按钮。

输入密码

  1. 等一致出现 “[INFO] BUILD SUCCESS” 字样,表示发布成功。

发布成功

  1. 同样步骤,切换到 core/jar.xml 文件所在目录,发布 core 模块。

切换到core模块所在目录发布core模块

  1. 已发布到中央仓库,下面进入中央仓库,正式 release。

打开刚才登录的Sonatype中央仓库,点击 View Deployments 选项卡。

View Deployments选项卡

能够看到刚刚 deploy 的两个jar包,如下图所示:

  • 上面显示VALIDATED说明我们的项目是符合发布要求的。

已发布到中央仓库

分别点击 Publish 按钮,进行发布。显示 PUBLISHING 字样,表示正在发布中。

发布到中央仓库

等待 10-20 分钟左右,点击 Refresh 按钮,刷新页面,能够看到发布成功。

发布成功

- 2.4 查看已发布的jar包

  1. 两个方法验证,在中央仓库查看 maven中央仓库地址
    进入该目录,查看刚才发布的jar包。

查看已发布的jar包

  1. 在 Sonatype 中央仓库首页,搜索查看 Sonatype中央仓库地址
    进入首页后,输入名称,点击回车搜索:

搜索已发布的jar包

  • 如下图所示,能看到发布的jar包及历史版本。

搜索已发布的jar包

三、版本更新发布

  • 有2种情况:
  1. 若发布电脑没有更换,则从 【2.3 开始发布】 步骤开始,重新发布即可。

  2. 若发布的电脑更换了,或者GPG密钥对过期了,则重复【2.1 生成GPG密钥对 和 2.3 开始发布】,两个步骤。

提示

  • 若 maven 环境变了,则需要重新设置【1.3 配置Maven发布时的Token】中的配置 配置Maven发布时的Token