其他笔记-如何向maven中央仓库提交jar

HDIS-Framework

HDIS-Framework是一个基于SpringBoot、Kubernetes、阿里云服务,编写的一个用于支撑微服务的极速开发框架。

其文档详尽,Demo全面,设计合理,开箱即用,节省开发时间,提升开发效率。

配套的docker、Kubernetes教程已踩过各种坑,让你的微服务无障碍的顺畅运行起来。

HDIS与Kubernetes或SpringCloud配合使用,能达到最佳效果。

其他笔记-如何向maven中央仓库提交jar

1.0JIRA准备

1.1注册一个JIRA账号

https://issues.sonatype.org/secure/Signup!default.jspa

1.2创建一个新工程的工单

注意!Project请选择‘Community Support - Open Source Project Repository Hosting (OSSRH)’

https://issues.sonatype.org/secure/CreateIssue!default.jspa

1.3填写工单内容

注意!只需要填写

Group Id:项目Maven的GroupID,注意,GroupID是一个需要你购买了的域名,否则审核员会DISS你。

Project URL:你的git项目主页,如:(https://gitee.com/w6513017/HDIS-Framework)

SCM url:可拉取项目的git地址,如:(https://gitee.com/w6513017/HDIS-Framework.git)

1.4等待审核

进入工单页面查看Activity ===> Comments部分,此处为你和审核员的聊天内容。

1.5审核完毕

当页面上审核状态(Status)为resolved时,才可以向中央仓库提交jar包。

审核通过后会出现以下内容:

Permalink

twatson Thad Watson added a comment - Yesterday

Configuration has been prepared, now you can:

Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots

Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2

Promote staged artifacts into repository ‘Releases’

Download snapshot and release artifacts from group https://oss.sonatype.org/content/groups/public

Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/content/groups/staging

please comment on this ticket when you promoted your first release, thanks

注意最后一句,当你发布第一个release后,请通知审核员一声。否则他不会为你激活向中央仓库同步。到时候你就玩蛇了!

2.0Maven部署准备

2.1完善POM信息

需要在POM中完善name、description、url、license、scm、developer的信息

HDIS-Framework
支撑Java项目的,基于SpringBoot、阿里云的一系列公共组件,规定的一系列架构约束。
https://gitee.com/w6513017/HDIS-Framework

    
        Apache License Version 2.0
        http://www.apache.org/licenses/LICENSE-2.0
    


    https://gitee.com/w6513017/HDIS-Framework.git
    scm:git:https://gitee.com/w6513017/HDIS-Framework.git
    scm:git:https://gitee.com/w6513017/HDIS-Framework.git
    master


    
        Nicholas.ZW.H
        [email protected]
    

2.2配置distributionManagement

需要在POM文件中配置distributionManagement


    
    
        snapshots
        https://oss.sonatype.org/content/repositories/snapshots
    
    
    
        releases
        https://oss.sonatype.org/service/local/staging/deploy/maven2
    

2.3配置JIRA的账号和密码

在/home/.m2/settings.xml中设置JIRA的账号和密码


  
    
      snapshots
      你的用户名
      你的密码
    
    
      releases
      你的用户名
      你的密码
    
  

2.4配置上传插件

配置源代码插件、文档插件


    
        
            org.apache.maven.plugins
            maven-source-plugin
            2.4
            
                
                    attach-sources
                    
                        jar
                    
                
            
        
        
            org.apache.maven.plugins
            maven-javadoc-plugin
            2.10.4
            
                
                    attach-javadocs
                    
                        jar
                    
                
            
        
    

2.5gpg相关配置(坑已踩完,放心使用)

2.5.1安装gpg程序

2.5.1.1windows

下载gpg。注意!请选择GnuPG 1.4版本,高版本插件支持有问题!

下载地址:

https://www.gnupg.org/download/index.html

配置环境变量

将gpg的安装目录配置进path

2.5.1.2linux

安装gnupg

yum install -y gnupg

安装rng-tools,补充熵池。否则它在生成密钥的时候会卡住!

yum install -y rng-tools

配置rng-tools

echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' >/etc/sysconfig/rngd
service rngd restart
chkconfig rngd on

2.5.2生成gpg密钥与上传gpg密钥

2.5.2.1生成密钥

按照提示一步步执行即可

gpg --gen-key

2.5.2.2查看密钥

使用命令查看key

gpg --list-keys

2.5.2.3上传公钥

得到密钥以后需要上传至公钥服务器。

maven在发布release版本时需要在公钥服务器上拉取密钥,进行验证。

以下为公钥服务器列表,国内只有它能访问!公钥服务器之间会自动同步。

keyserver.ubuntu.com

上传公钥

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys [公钥ID]

验证公钥

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys [公钥ID]

2.5.3密钥相关操作(可跳过浏览)

2.5.3.1导出密钥

导出公钥

gpg --armor --output public-key --export [用户ID]

导出私钥

gpg --armor --output private-key --export-secret-keys [用户ID]

2.5.3.2导入密钥

导入密钥

gpg --import [密钥文件]

从公钥服务器导入公钥

gpg --keyserver hkp://subkeys.pgp.net --search-keys [用户ID]

2.5.3.3删除密钥

删除私钥

gpg --delete-secret-keys [用户uid]

删除公钥

gpg --delete-keys [用户uid]

2.5.4配置gpg加密插件

由于发布releases环境才会用到gpg,因此可以设置profile进行环境的隔离。

注意!插件版本必须使用1.4版本,1.4以上版本会卡住。

注意!properties需要设置gpg.exe地址。


    D:\Program Files (x86)\GNU\GnuPG\gpg.exe


    
        
           org.apache.maven.plugins
           maven-gpg-plugin
           1.4
           
             
               sign-artifacts
               verify
               
                 sign
               
             
           
        
     

3.0部署

3.1发布snapshot版本

3.1.1Maven设置snapshot版本

修改version,并加上‘-SNAPSHOT’后缀

-SNAPSHOT

3.1.2发布

注意:snapshot版本提交时,并不需要gpg签名,直接提交即可。

执行:

mvn clean deploy

3.1.3验证

在snapshot仓库中可以看到已经发布的snapshot版本

snapshot仓库地址:

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

3.2提交release版本

3.2.1Maven设置release版本

修改version,并取消‘-SNAPSHOT’后缀

3.2.2发布

注意:release版本提交时,需要gpg签名。

执行:

mvn clean deploy -P release

3.2.3登录sonatype执行发布操作

3.2.3.1登录

https://oss.sonatype.org/#stagingRepositories

3.2.3.2验证

查看你所提交的Repository。

勾选需要sonatype验证的Repository,点击菜单栏的Close。

在下方状态栏中(Activity)可以看见sonatype正在执行验证,并且会实时的显示验证结果

3.2.3.3发布

当验证完成后!

查看你所提交的Repository。

勾选需要sonatype发布的Repository,点击菜单栏的Release。

在下方状态栏中(Activity)可以看见sonatype正在执行发布,并且会实时的显示验证结果

3.2.3.4验证

整个Repository消失后,表示发布成功,可以在仓库中找到了。

sonatype仓库地址:

https://oss.sonatype.org/content/repositories/releases/

过一段时间后,中央仓库会从sonatype仓库同步。中央仓库查看地址:

http://mvnrepository.com/

你可能感兴趣的:(其他笔记)