发布项目到Nexus Maven中央仓库(整合版+坑)

       本来不打算写这篇文章,因为看到了很多这样的文章,本想着按照网上的做一遍,发现遇到的坑是找遍各个博客论坛也没有解决,所以还是打算也弄一篇这样的教程,记录下自己走过的坑。本文主要是整合,也是借鉴了许多优秀的文章。

       这是我第一次尝试去开源自己封装的一个小工具,虽然不起眼。但是还是千里之行的第一步,还是让自己狠狠的高兴了一番。

       首先我要先感谢一些博主的博客,真的是分享才是硬道理。

       第一次主要参考这篇博客       如何提交项目到Maven中央仓库(图文详解) 

      参考了这篇文章 jdk8使用maven-javadoc-plugin插件报错的处理   

      如何上传自己的jar包到maven公共远程中央仓库(终)

     整个操作的流程:

  •     注册Nexus 账号
  •     Nexus 创建项目
  •     GPG秘钥安装
  •     项目POM文件配置

一、注册Nexus账号

      Nexus账号注册地址  注意密码的复杂度

二、创建项目

     1、新建 —> issue

     2、项目 —> Community Support - Open Source Project Repository Hosting

     3、类型 —> New Project

4、概要—> 自己看着写

5、以下步骤参考图片(其实下面的英文提示很清晰了)

6、创建 Issue 后,等待审核即可。一般会在一个工作日内审核完成。当Issue的Status变为RESOLVED 或 FIXED 后,即可进行下一步操作。

三、GPG秘钥安装

   1、下载地址 :https://www.gpg4win.org/download.html   红框标注分别是Windows和Mac的

 GPG常用命令(直接复制之前博主的,写的很棒)

  

查看是否安装成功
gpg --version生成密钥对
gpg --gen-key查看公钥
gpg --list-keys将公钥发布到PGP密钥服务器
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID查询公钥是否发布成功
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys

2、在安装完成后,执行以下命令生成密钥对,按照提示输入账号、邮箱、密码 (PS: 此处的密码在后面发布会用到,请务必记住

生成秘钥
gpg2 --gen-key 

3、执行命令查看密钥, 此时控制台会输出类似下面的内容

4、执行以下命令将公钥发布到服务器中(如果失败就在重新发送一次)

将公钥发布到PGP密钥服务器
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID查询公钥是否发布成功
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys

四、Maven配置

    我们要做一个Maven的配置,把上传的用户名和密码放在里边

    releasesyour user nameyour passwordsnapshotsyour user nameyour password

五、项目POM文件配置

下面是本人的项目pom文件,全部。之后会去细说需要注意的配置


4.0.0org.springframework.bootspring-boot-starter-parent2.1.9.RELEASEcom.github.DDLoveWorldcommon-queryjar1.0.1-SNAPHOSTCommon query demo project for Spring Boot1.0.1UTF-83.1.21.18.10com.baomidoumybatis-plus${mybatis.plus.version}com.baomidoumybatis-plus-boot-starter${mybatis.plus.version}org.projectlomboklombok${lombok.version}truereleaseshttps://oss.sonatype.org/service/local/staging/deploy/maven2snapshotshttps://oss.sonatype.org/content/repositories/snapshotsrelease[1.8,)org.sonatype.pluginsnexus-staging-maven-plugin1.6.3truereleaseshttps://oss.sonatype.org/trueorg.apache.maven.pluginsmaven-release-plugin2.4.2truefalsereleasedeployorg.apache.maven.pluginsmaven-compiler-plugin3.11.81.8org.apache.maven.pluginsmaven-gpg-pluginsign-artifactsverifysignorg.apache.maven.pluginsmaven-source-plugin3.0.1attach-sourcesjar-no-forkorg.apache.maven.pluginsmaven-javadoc-plugin-Xdoclint:noneattach-javadocsjarThe Apache Software License, Version 2.0http://www.apache.org/licenses/LICENSE-2.0.txtrepohttps://github.com/DDLoveWorld/common-queryhttps://github.com/DDLoveWorld/common-query.githttps://github.com/DDLoveWorldhualidong869701411@qq.comhttps://github.com/DDLoveWorld

  1、由于Maven仓库校验还是很严格的,一些描述性的配置也都是不能少的


Common query demo project for Spring Boot
hualidong869701411@qq.comhttps://github.com/DDLoveWorld


The Apache Software License, Version 2.0http://www.apache.org/licenses/LICENSE-2.0.txtrepo

2、Maven仓库的一些配置

https://github.com/DDLoveWorld/common-queryhttps://github.com/DDLoveWorld/common-query.githttps://github.com/DDLoveWorldreleaseshttps://oss.sonatype.org/service/local/staging/deploy/maven2snapshotshttps://oss.sonatype.org/content/repositories/snapshots

3、打包配置

 发布到maven中央仓库会要求我们在上传项目得jar的同时,必须同步发布对应到Javadoc、source、asc(利用gpg生成到校验),所以需要在maven中添加以下构建插件(开始划重点了

(1)Javadoc

  这是个大坑啊,在jdk版本1.8之后校验规则变了,所以要动一动(注意好每个配置项所放的位置,参考这个pom)。

  Javadoc 的命令是:(我遇到的坑的关键点)

mvn javadoc:jar
[1.8,)org.apache.maven.pluginsmaven-javadoc-plugin-Xdoclint:noneattach-javadocsjar

(2)Source 

   打包源码插件。附带命令

mvn source:jar
  org.apache.maven.pluginsmaven-source-plugin3.0.1attach-sourcesjar-no-fork

(3) GPG秘钥

加密工具。附带命令:

mvn gpg:sign
 org.apache.maven.pluginsmaven-gpg-pluginsign-artifactsverifysign

其他的插件就不在叙述了。

六、发布项目

  到了最最关键的时刻了,这个时刻就是我遇到的坑最大了。

发布
mvn clean deploy -P release

就是这个命令啊怎么弄都不行,上传的东西是各种缺失,不是少javadoc的jar就是少source的jar。搜索了很多网上的博客也都是这样的命令。真的是纠结了老半天。分散想下,先试下各个插件的命令是否可以正常运行,参考上面各个单独命令(mvn javadoc:jar 等)。发现都是没问题的。最终命令:


mvn clean install javadoc:jar source:jar gpg:sign deploy -P release

“妈妈再也不用担心我的发布不成功了!”

解释下,命令是从左到右依次执行的  最终成功上传到仓库并校验合格,就差close 和 release了。

也可以用mvn设置版本:

mvn versions:set -DnewVersion=1.0.1-SNAPHOST

登录https://oss.sonatype.org,然后选择staging Repositories

我这是上传发布成功了,所以没有待发布了。

操作步骤就是选择要发布的列,先点close(当然release也点不了),等待检查通过后,刷新,release就可以点击了,点击release就ok了 。等待一段时间就ok了。官方的回答是十分钟左右就可以引用自己的jar了。两个小时上传到中央库

如果Release成功,并且你是首次发布组件,则需要到你创建到issue中回复 “我已经成功发布该组件”,经历大概2小时后,该组件将会同步到对应的maven仓库 。

最后说下个人感受:

1、本身我这边也是参考了网络上的各种文章去做的,也很多,不打算在写这篇文章了。但是实际操作下来还是和网上的有一定差别,还是记录下。希望能给大家一点帮助,如果有说的不对的,请留言改正

2、还有一点就是,大家应该都有过这种感受,就是玩游戏一开始都是说太难了,太难了,但是当你通关之后一次,在回过头来玩一次,你会发现so ease!无论之前多难过的关卡。技术也是一样,现在回想整个发布的过程,一头雾水的扎进去,遇到各种坑,最终完成后。只想说一句 so ease!

3、终于开源了一些自己的小工具,尽管不值一提,但是还是很开心。后期会把小工具链接加上!!

下面是本人做的一个小工具:

做了一个前后端接口的自定义查询构造。减少前后端的接口查询交流

Mybatis-plus二次开发之接口参数自定义查询

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部