如何发布jar到maven中央仓库和避坑指南

为了把我们多年开发的框架分享给开发者通过maven库引用,所以花了些时间把框架打包发布到了Maven Central,中间遇到了很多问题,一步步记录下来,以免后面新手踩坑。

很多Java开发者都很乐意把自己做好的组件发布到网上共享给大家使用,Maven Central是一个Java组件共享中心,但首次发布的确会遇到很多问题,希望通过我们的亲身经历,让看到这篇文章的幸运开发者少走弯路,顺利完成jar发布到Maven Central.

1、注册账号

访问https://issues.sonatype.org/,点击Sign up进行注册。

如何发布jar到maven中央仓库和避坑指南_第1张图片

账号注册

输入邮箱,全名,用户名和密码进行注册,这里密码要求比较复杂,建议保存到电脑里,用户名和密码后面发布项目时需要用到。

如何发布jar到maven中央仓库和避坑指南_第2张图片

填写用户注册信息

2、新建项目的问题

注册成功后登录并新建一个项目问题:

如何发布jar到maven中央仓库和避坑指南_第3张图片

新建项目问题

如何发布jar到maven中央仓库和避坑指南_第4张图片

选问题类型为New Project

如何发布jar到maven中央仓库和避坑指南_第5张图片

填写项目信息内容

这里要注意的是Group Id的填写,如果有自己的域名的,一般就是域名反过来,如果没有域名的,可以用github应用地址(这里我没有用过,大家可以找一下相关教程)。

这里我只讲域名的情况,域名一定要真实而要自己可以做解析的,后面会有要求对域名增加一条TXT的DNS解析(你可以提前做好解析,后面应该能省掉一步,很有可能一步到位)。

项目地址(Project URL)可以填自己项目网站或开源地址都行,SCM填写项目开源平台git地址(可以是空项目,但一定要有,而且要公开的所有人都能访问那种,不能是私有的)。

用户名(username)就填填写你注册的用户名即可。点击新建完成问题提交。

3、平台工作人员审核

问题提交后,平台工作人员审核并提出问题,像我们是用域名的情况,审核人员会要求你对域名做一个TXT的DNS解析,我们照做即可,做完后要记得把问题状态重新改为开放状态。

如何发布jar到maven中央仓库和避坑指南_第6张图片

审核负责人要求增加域名解析

这里有一个插曲,这个jkas.org域名也是我们的,本来打算用这个域名的,由于某种原因这个域名国内用不了,我们转到国外服务商那里,结果搞到解析不了(心里那个苦),这里不细表。

域名解析方式如下,增加一条TXT解析记录,记录值为上面审核员要求的,其实就是OSSRH-问题的ID :

如何发布jar到maven中央仓库和避坑指南_第7张图片

XX云域名解析后台

添加完成后,回到问题那里,把问题状态改为开放(open),然后等审核员审核,当收到如下评论的时候,同时问题状态也会变成已解决状态,那就恭喜你,项目已经审核通过,就可以进入jar包的提交操作流程了。

如何发布jar到maven中央仓库和避坑指南_第8张图片

审核负责人回复通过评论

如何发布jar到maven中央仓库和避坑指南_第9张图片

问题状态变成已解决

4、环境准备

java环境安装,这个不讲了,如果这个都不知道,你就可以不用看下去了。

Manve安装,去官方下载进行安装(https://maven.apache.org/download.cgi)。

GPG安装,windows操作系统下载gpg4win(https://www.gpg4win.org/)并完成安装

配置Maven的 settings.xml,注意这里有两个地方有这个文件,一个是在mavne安装目录下conf文件夹下面,一个是在(用户目录/.m2/)目录下:这里配置用户目录下这个即可,做如下配置:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 " >http://maven.apache.org/xsd/settings-1.0.0.xsd">

sonatype-nexus-snapshots

你注册时的用户名

你注册时的密码

sonatype-nexus-staging

你注册时的用户名

你注册时的密码

配置项目的POM.xml,根据自己项目情况修改信息及依赖,剩下照抄:

坑点,注意 distributionManagement节点里的提交地址。

4.0.0

cn.org.jkas

jkas

2.33

jar

Jkas

Easy Fast Powerful

${projectUrl}

GNU GENERAL PUBLIC LICENSE, Version 3.0

https://www.gnu.org/licenses/gpl-3.0.txt

repo

master

[email protected]:soonec/jkas.git

scm:git:[email protected]:soonec/jkas.git

scm:git:[email protected]:soonec/jkas.git

你注册时的用户名

你注册时的邮箱

公司名称

${projectUrl}

javax.mail

mail

1.4.7

release

src/main/java

**/*.properties

org.apache.maven.plugins

maven-source-plugin

2.2.1

package

jar-no-fork

org.apache.maven.plugins

maven-javadoc-plugin

2.9.1

private

true

UTF-8

UTF-8

UTF-8

-Xdoclint:none

package

jar

org.apache.maven.plugins

maven-gpg-plugin

1.5

verify

sign

org.apache.maven.plugins

maven-compiler-plugin

3.0

1.8

1.8

true

true

UTF-8

false

org.apache.maven.plugins

maven-release-plugin

2.5.1

cn.org.jkas

maven-jar-plugin

true

org.jkas.core.About

sonatype-nexus-snapshots

Sonatype Nexus Snapshots

https://s01.oss.sonatype.org/content/repositories/snapshots/

sonatype-nexus-staging

Nexus Release Repository

https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/

UTF-8

1.8

1.8

https://gitee.com:soonec/jkas.git

ossrh

2、打包

生成密钥:

打开CMD命令行,输入:gpg --gen-key

这里会要求你输入用户名和邮箱 ,输入你注册时的用户名,邮箱,会提示让你确认输入的是否正确,按相应的字母可以修改用户名和邮箱,按o字母进行输入确认,这时要求你输入密钥密码(一个关键的Passphrase),输入一个密码后确认即可。要记住这个密钥密码,后面提交时需要用到,建议也保存到电脑。

如何发布jar到maven中央仓库和避坑指南_第10张图片

密钥用户名和邮箱输入

如何发布jar到maven中央仓库和避坑指南_第11张图片

密钥密码输入

这时可以用gpg --list-keys命令查看新建的密钥:

如何发布jar到maven中央仓库和避坑指南_第12张图片

查看已经生成密钥

关键一步,发送公钥到服务器:XXXXXX为你的公钥,坑点(注意发送地址)

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys XXXXXXXXX

如何发布jar到maven中央仓库和避坑指南_第13张图片上传公钥到服务器

查看公钥上传结果 :XXXXXX为你的公钥

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys XXXXXXXXX

如何发布jar到maven中央仓库和避坑指南_第14张图片查看公钥上传结果

激动人心的时候来了,开始上传jar包:

进入项目根目录下命令行执行:mvn clean deploy -P release

如何发布jar到maven中央仓库和避坑指南_第15张图片

编译并上传项目jar包

过程中会要求你输入密钥密码,输入之前产生密钥时输入的密钥密码即可。

当出现,BUILD SUCESS时则成功上传到了sonatype

这时登录: https://s01.oss.sonatype.org/ (坑点,注意登录地址)

也是用之前注册的用户名和密码登录,登录后,点击左侧Staging Repositories,右侧则出现我们刚提交的项目,选中项目,点击左上方close按钮,改变项目状态为closed状态。这里会有项目问题校验,如果close失败,根据问题提示进行修改,重新提交。close成功后,选中项目,再点击左上方的release按钮发布到maven central操作。

如何发布jar到maven中央仓库和避坑指南_第16张图片

上传成功的包列表

这个操作做完后,去到之前创建问题那里发一条评论,说已经release成功即可。

如何发布jar到maven中央仓库和避坑指南_第17张图片

发一条release生成的评论

工作人员也会回复你(其实是机器人回复的)

这个时候你已经能通过这个
https://repo1.maven.org/maven2/,地址查看到你发布的项目了,4个小时后就能同步到Maven Central(https://search.maven.org/)了。

如何发布jar到maven中央仓库和避坑指南_第18张图片

通过https://repo1.maven.org/maven2/浏览到项目

漫长漫长漫长漫长漫长漫长漫长漫长漫长漫长漫长漫长漫长的等待.......,4小时后,终于可以在Maven Central(https://search.maven.org/)搜索到提交的项目了。

如何发布jar到maven中央仓库和避坑指南_第19张图片

搜索项目名称即可有结果和版本

如何发布jar到maven中央仓库和避坑指南_第20张图片

项目详细信息及引用方式

至此,整个jar发布到Maven Central 的过程就完成了。

把地址分享给你的开发小伙伴们去引用就可以啦!

你可能感兴趣的:(java,programming,maven,java,maven,发布jar)