【记】 将jar包发布到maven*仓库
参考链接: 如何使用maven打包并发布到*服务器
打包到*服务器主要分为以下的步骤,
- 创建工单
- 生成密匙对
- 设置Maven配置
- 部署和发布Jar包
- 更新Jar包
一、创建工单
我们需要在Sonatype网站上提交一个工单,首先去https://issues.sonatype.org/secure/Dashboard.jspa网站创建一个工单(Issues),如果没有账号就去注册一个账号,后面会用到用户名和密码。
登录系统后,点击导航上面的Create按钮,创建一个工单。如图:
填写详细的信息,在新增信息中有Project和Issue Type选项,这个就按默认的选择,Community Support - Open Source Project Repository Hosting (OSSRH)以及New Project。主要是指项目的支持更新方式和工单的类型,其次就选择Summary、Description、Group Id、Project URL、SCM url 等信息,这里主要是填写Jar包的大致摘要、描述、项目或者组织的唯一标志、工程的地址、管理工程的系统(比如git、svn等)
这里注意了Group Id这个一般是网址的地址,信息完成后,点击Create按钮,提交工单后,过一会就会有Sonatype系统会询问你地址是否是你的,这里需要去回答一下,这样一般2个小时就会通过了。可以参考一下我原来的工单https://issues.sonatype.org/browse/OSSRH-36043,回复一下
Hi,Thank you for your reply. xxx.xxx is my blog and I own the domain.
这里的xxx.xxx更改为上面的Group Id,就是指你的网址,也就是项目的父级地址。如果没有个人的网址,可以使用com.github.username。使用github上面的网址,username换为你自己的名称即可。
当你的工单的状态为RESOLVED的时候,就可以进行下一步的操作了。
注意:当你使用了某个域名后,比如net.anumbrella,则你下次使用时就不用再提交工单了,net.anumbrella.*的子域名都可以直接打包进行提交到*库。
二、生成密匙对
这里需要使用gpg来生成密匙对,如果是windows,这需要下载gpg4win,安装好就可以使用。下载地址
安装好后使用gpg –version查看版本号。
gpg --version
然后执行gpg --gen-key生成**
gpg --gen-key
这里是采集密匙,输入用户名和邮箱,其他的值可以使用默认值,然后输入Passphrase的值,这个值需要记住,这个相当于**的密码,发布过程中进行签名操作的时候会用到。
上传GPG公钥
将公钥上传到公共的**服务器,这样其他人才可以通过公钥来验证jar包的完整性。
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys CAB4165C69B699D989D2A62BD74A11D3F9F41243 |
其中CAB4165C69B699D989D2A62BD74A11D3F9F41243为**的ID,可以通过gpg –list-keys命令查看
gpg --list-keys /Users/kiwenlau/.gnupg/pubring.kbx ---------------------------------- pub dsa2048 2010-08-19 [SC] [expires: 2020-06-15] 85E38F69046B44C1EC9FB07B76D78F0500D026C4 uid [ unknown] GPGTools Team <aaa@qq.com> sub elg2048 2010-08-19 [E] [expires: 2020-06-15] sub rsa4096 2014-04-08 [S] [expires: 2024-01-02] pub rsa2048 2019-01-03 [SC] [expires: 2021-01-02] CAB4165C69B699D989D2A62BD74A11D3F9F41243 uid [ultimate] kiwenlau <aaa@qq.com> sub rsa2048 2019-01-03 [E] [expires: 2021-01-02] |
三、设置Maven配置
在项目的pom.xml文件中,加入如下配置:
<name>projectName</name>
<description>a project about projectName</description>
<url>https://gitee.com/w-whf/xxxxx</url>
<licenses>
<license>
<name>The ApacheSoftware License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<tag>master</tag>
<url>https://gitee.com/w-whf/xxx.git</url>
<connection>https://gitee.com/w-whf/xxx.git</connection>
<developerConnection>https://gitee.com/w-whf/</developerConnection>
</scm>
<developers>
<developer>
<name>xxx</name>
<email>aaa@qq.com</email>
</developer>
</developers>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
配置好项目的pom.xml文件后,然后就对Maven的settings.xml文件进行配置,在settings.xml文件中加入下面的配置:
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>Sonatype网站的账号</username>
<password>Sonatype网站的密码</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>Sonatype网站的账号</username>
<password>Sonatype网站的密码</password>
</server>
</servers>
username和password就是在Sonatype上注册的用户名和密码。
四、部署和发布Jar包
在配置好文件后,切换目录到项目的pom.xml目录下,然后执行如下命令:
mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=配置gpg的密匙密码"
执行中还是要再输入passphrase密码,就是gpg密匙密码。如果没问题就可以得到后面的结果,如下:
发布Jar包
登录https://oss.sonatype.org/#stagingRepositories系统,输入Sonatype的账号和密码,然后查看提交上去的Jar包。
然后依次点击上方的Close–>Confirm,这将会弹出类似于下面的对话框,在其中输入我们Jar包的描述信息,这个信息将会在Maven搜索结果当作简介介绍我们Jar包的,所以建议输的详细点。
当状态变成closed后,执行上方的Release–>Confirm,同样会弹出一个类似于上面的对话框,我们还是输入那些介绍信息即可,
当这步执行完之后,构件将会自动删除,我们可以在welcome搜索自己的groupId(如com.gitee.w-whf.xxx)查看文件
并经过几小时后便可以在Maven*仓库搜索到(https://search.maven.org)。
我们也可以在http://repo1.maven.org/maven2/中找到具体的项目目录地址。
五、更新Jar包
当我们要更改了代码后,要升级版本,我们只需要更新项目工程代码,并修改pom.xml文件里面的版本号,最后重新执行上面的部署和发布Jar包步骤即可。
注意:1、groupId命名可使用com.github.username.xxx或com.gitee.username.xxx,至于其他我没试过
2、项目的groupId要和工单的gorupId一致,否则打包过程中会出现ReasonPhrase: Forbidden.
3、修改settings.xml时要修改maven自带的settings.xml文件,如D:/apache-maven-3.3.9/conf/settings.xml,否则打包过程中会出现Return code is: 401, ReasonPhrase: Unauthorized.
上一篇: Linux环境搭建jenkins实现自动更新war包
下一篇: python tqdm进度条乱码