如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。

 总体来说我也是结合本站各位同学写的操作步骤执行,但是过程中遇到了很多问题。现回顾整理记录下整过过程。以备后续同学借鉴。

目标:把自己开发的工具jar包上传至maven官方中心库,以供其他人dependency引用。

一、准备

开始要注意这个几个Maven相关地址:

① https://issues.sonatype.org 工单管理地址,就是申请上传资格和groupId 的地方。

② https://oss.sonatype.org/#welcome  构件仓库,把jar包上传到这里,Release 之后就会同步到maven中央仓库。

③ http://search.maven.org/  最终表现在可以在这里搜索到。

部分网址第一次打开有点慢,请稍等。

二、创建工单

从https://issues.sonatype.org 注册一个帐号(已经有请忽略),账号密码要记住,下面登录账号密码还要用这个。

可参考地址:https://www.sojson.com/blog/250.html

注意:如果您在创建时发现弹出框中,没有关于group Id 、project url等填写地方,那么说明首次进入方式可能不对,这块我也吃亏了(英文不好的同学推荐谷歌浏览器翻译),

可通过此地址进入:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134#

还不行参考官网介绍:https://central.sonatype.org/pages/ossrh-guide.html

等到审核通过状态会变为RESOLVED ,第一次审核要一天左右 。

注意:其实整个过程都可以和issues的互动交流,不会的百度翻译后再发。

例如我用的自己域名证书证明域名 www.iussoft.com 是我的,沟通截图如下:

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第1张图片

图上最后这段英文大概意思是:

  • 你的配置已经完成了,可以进入工作了。
  • 上传快照版本的地址为….
  • 上传发布版本的地址为…
  • 暂存库中是用来为发布做准备的。
  • 下载快照以及发布版本的地址为…
  • 下载快照、发布以及暂存库的地址为…
  • 另外当你第一次上传到库中的时候请在这里说一下你已经上传了(只有第一次的时候,后面不需要,第一次他那边会进行一些配置)

三、GPG环境的安装

安装过程,我就不细说了,网上很多大拿都写过。可参考这些地址:

https://www.sojson.com/blog/250.html

https://blog.csdn.net/hupoling/article/details/78511899

https://blog.csdn.net/cc_want/article/details/77943340

我自己本次cmd内创建gpg大概最终输出:
gpg: key 546767CAA6532AB0 marked as ultimately trusted
public and secret key created and signed.
pub   rsa2048 2018-08-28 [SC] [expires: 2020-08-27]
      A48B4D0CA1D660DA5966C119546767CAA6532AB0
uid                      hexin
sub   rsa2048 2018-08-28 [E] [expires: 2020-08-27]

其中 546767CAA6532AB0 就是申请的key

1)查看我的key

gpg --list-keys

最后注意 keyserver 上传到服务端:

2)上传命令例如:[末尾参数替换自己key分别执行下面命令]

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 546767CAA6532AB0
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 546767CAA6532AB0

3)查看是否上传成功命令:[l末尾参数替换自己key分别执行下面命令]

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 546767CAA6532AB0
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 546767CAA6532AB0

四、配置Maven Settings.xml & pom.xml

我这块也是耗时最多的(主要也是第一次整),中间也和issues互动交流过遇到的问题。主要参考下面的地址;

https://central.sonatype.org/pages/requirements.html

我的最终Settings.xml配置:


...
    
        sonatype-nexus-snapshots 
        https://issues.sonatype.org官网注册用户名称
        https://issues.sonatype.org官网注册用户密码
    
    
        sonatype-nexus-staging 
        https://issues.sonatype.org官网注册用户名称
        https://issues.sonatype.org官网注册用户密码
    
...

其实可以配置一组被共用就行,我为了区分就分开配置了,两组账户和密码信息一样即可。

我的最终项目的pom.xml配置:

最好使用maven快照版本,至于和发布版本的区别参考介绍地址:https://www.cnblogs.com/wuchanming/p/5484091.html


  4.0.0

    com.iussoft
    iussoft-api
    3.0.0-SNAPSHOT

    jar
    ${project.groupId}:${project.artifactId}
    
        Iussoft Open API for Java
        Copyright (C) http://www.iussoft.com
        All rights reserved.
    
    http://www.iussoft.com

    
      UTF-8
      UTF-8
      4.3.7.RELEASE
      1.7
      ${java.version}
      ${java.version}
    

    
        
            The Apache Software License, Version 2.0
            http://www.apache.org/licenses/LICENSE-2.0.txt
        
    
    
        
            iussoft
            hexin********@163.com
        
    
    
        scm:git:[email protected]:iu******orm.git
        scm:git:[email protected]:iu******orm.git
        https://gitee.com/ius******orm
        1.0
    
    
        
            sonatype-nexus-snapshots 
            oss Snapshots Repository
            https://oss.sonatype.org/content/repositories/snapshots
        
        
            sonatype-nexus-staging 
            oss Staging Repository
            https://oss.sonatype.org/service/local/staging/deploy/maven2/
        
    

  
      ......
  
    
    
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    
                        1.7
                        1.7
                    
                
                
                    org.apache.maven.plugins
                    maven-jar-plugin
                    
                        
                            false
                        
                    
                
                
                
                    org.apache.maven.plugins
                    maven-source-plugin
                    2.2.1
                    
                        
                            attach-sources
                            
                                jar-no-fork
                            
                        
                    
                
                
                
                    org.apache.maven.plugins
                    maven-javadoc-plugin
                    2.10.3
                    
                        
                            attach-javadocs
                            
                                jar
                            
                        
                    
                
                
                
                    org.sonatype.plugins
                    nexus-staging-maven-plugin
                    1.6.7
                    true
                    
                        sonatype-nexus-staging 
                        https://oss.sonatype.org/
                        true
                    
                
                
                
                    org.apache.maven.plugins
                    maven-gpg-plugin
                    1.6
                    
                        
                            sign-artifacts
                            verify
                            
                                sign
                            
                        
                    
                
            
    

几点注意事项:

1、developers和scm信息:最好用你代码所在git的账户信息和git地址信息。

2、distributionManagement中的信息:id保持一样,注意别多空格。

3、plugins内插件配置,source、javadoc、sonatype、gpg等,注意先maven下载相关引用jar。

4、true配置是标识Release自动发布,但是我们首次发布后,最好再去之前issues.sonatype.org上提交的工单反馈下。

 

五、部署、上传

1)CMD命令窗口:部署命令执行可以使用:

mvn deploy -Dmaven.test.skip=true -e

2)idea工具配置及执行

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第2张图片

配置完成后,先clean再deploy,同时会分别打包jar,pom,javadoc,sources等信息,若有问题会失败,请先解决错误。

然后上传时输入之前创建gpg时设置的密码。

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第3张图片

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第4张图片

如上图,第一个success表示部署成功(上传成功)此时可以在https://oss.sonatype.org/ 登录查看信息,登录信息和 issues注册的一样。

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第5张图片

最终可以按照自定义的group Id搜索最新提交的版本信息。如下图我的3.0.2;

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第6张图片

等待发布成功,其实在https://oss.sonatype.org/content/groups/public/ 这个里面就能找到。

而想在central中看到,一般第一次和issues提交工单沟通后,就是我发布完了。有时候自动就回复了。大概回复如下。

大概意思2个小时左右就可以看到了。

如何用idea把自己的Jar包上传到 maven 官方仓库中,利用idea工具亲测验证。_第7张图片

六、项目中应用

一般我们在项目开发阶段为了方便团队合作,推荐使用快照版。而正式上线或者版本稳定的推荐使用发布版,具体介绍参考:

https://www.cnblogs.com/wuchanming/p/5484091.html

 

项目pom.xml配置

1)首先需要启用快照库

方式一:修改每个项目pom.xml

    
    
        
            nexus
            Nexus Mirror
            https://oss.sonatype.org/content/groups/public/
            
                true
                always
            
        
    

方式二:修改统一配置文件settings.xml

参考地址:https://blog.csdn.net/shenzhen_zsw/article/details/78409917

 

2)引用配置

    
        
        com.iussoft
        iussoft-api
        2.0.3-SNAPSHOT 
        
    

七、总结

1)一般遇到问题,可以在网上搜索资料,排查。本人推荐最后是直接和https://issues.sonatype.org/官网的工单上和工作人员进行互动(可能花费时间长点,但是能给你相关正确的参考地址)。

2)group id命名 和OSSRH相关操作,最好参考https://central.sonatype.org/pages/ossrh-guide.html

3)登录账号密码最好别有@符号。

4)deploy时报403错误是,及时反馈issues官网工单,让其改权限(我在这块一直以为是自己本地配置问题)。

5)deploy时报错,* Missing Signature: '*****.jar.asc' does not exist for '***.jar'.等错误时,其实是无法用gpg进行jar文件签名生成对应的asc文件。这种情况可以排查本地gpg环境是否安装,配置正确;同时排查下生成的key是否已经上传到keyserver服务端。

6)整过过程连接国外网站,网络断断续续,或者比较缓慢,需要耐心等待。

7)开发过程中因为版本不稳定,推荐使用快照库,等部署或者稳定后使用发布版。

 

你可能感兴趣的:(MAVEN)