资讯专栏INFORMATION COLUMN

如何把jar包发布到中央仓库

沈俭 / 1553人阅读

摘要:注意此时上传的构件并未正式发布到中央仓库中,只是部署到中了,下面才是真正的发布。

1、在网站https://issues.sonatype.org/s...(请记住对应的账号和密码,之后需要用到)
此外,Sonatype 还提供了一个名为OSS 的系统,具体的构件发布是在这个oss系统上,

Sonatype OSS 地址:https://oss.sonatype.org
这里的用户名和密码就是上面在JIRA中注册的,在这里可以查询到全世界已发布的构件,当然我们发布构件的操作也在这里进行。

2、登录后选择后选择Create

Project:项目默认值
IssueType:默认值
Summary:说明,请介绍一下项目
GroupId:项目的分组名称
ProjectURL:访问项目的URL,写仓库地址
SCMurl:访问项目的URL,写仓库地址
其他的选填
填写完毕后点击Create,然后等待状态变成RESOLVED,如下图

Comments的回复如下:

3、使用GPG 生成密钥对
Windows系统直接去https://www.gpg4win.org/downl...,安装好后通过gpg --version,出现版本等信息就安装成功了。如果是Linux,可以通过yum install gpg安装)

生成密钥对,在cmd窗口中输入命令:
gpg --gen-key
提示输入:
Real name
Email address
根据提示输入大写O确认无误
然后弹出一个输入密码的对话框,请务必记住该密码

输入密码确认
查看公钥
gpg --list-keys

将公钥发布到 PGP 密钥服务器(gpg --list-keys可以看到公钥id)
gpg--keyserver hkp://pool.sks-keyservers.net --send-keys 5292CC898762C9D1237A561608DE5FBA6F7142E6
gpg--keyserver hkp://keyserver.ubuntu.com:11371 --send-keys5292CC898762C9D1237A561608DE5FBA6F7142E6

查询公钥是否发布成功
gpg --keyserverhkp://pool.sks-keyservers.net --recv-keys 5292CC898762C9D1237A561608DE5FBA6F7142E6

4、修改Maven配置文件,需要同时修改全局的setting.xml和项目的pom.xml文件
setting.xml修改:
找到maven的全局配置文件settings.xml,在里面找到 节点,这个节点默认是注释掉的,增加如下配置:



 sonatype 
用户名
密码

这里的id是要在pom.xml里面使用的,用户名和密码就是在Sonatype上面注册的用户名和密码。

pom.xml修改:

            
                4.0.0
                com.gitee.hjj520
                payment-core
                0.0.1-RELEASE
                payment-core
                a project aboutpayment
                https://gitee.com/hjj520/payment-core
                
                   
                       The ApacheSoftware License, Version 2.0
                       http://www.apache.org/licenses/LICENSE-2.0.txt
                       repo
                   
                
                
                   
                       happyhuangjinjin
                       happyhuangjinjin@sina.com
                   
                
                
                   master
                   https://gitee.com/hjj520/payment-core.git
                   https://gitee.com/hjj520/
                   https://gitee.com/hjj520/payment-core.git
                
             
                
                   
                       release
                       
                          
                              
                              
                                 org.apache.maven.plugins
                                 maven-source-plugin
                                 2.2.1
                                 
                                     
                                        package
                                        
                                            jar-no-fork
                                        
                                     
                                 
                              
                              
                              
                                 org.apache.maven.plugins
                                 maven-javadoc-plugin
                                 2.9.1
                                 
                                     
                                        package
                                        
                                            jar
                                        
                                     
                                 
                              
                              
                              
                                 org.apache.maven.plugins
                                 maven-gpg-plugin
                                 1.5
                                 
                                     
                                        verify
                                        
                                            sign
                                        
                                     
                                 
                              
                          
                       
                       
                          
                              sonatype
                              
                                 https://oss.sonatype.org/content/repositories/snapshots/
                              
                          
                          
                              sonatype
                              
                                 https://oss.sonatype.org/service/local/staging/deploy/maven2/
                              
                          
                       
                   
                
            

pom.xml中必须包括:name、description、url、licenses、developers、scm等基本信息,使用了 Maven 的 profile 功能,只有在 release 的时候,创建源码包、文档包、使用 GPG 进行数字签名。此外,snapshotRepository 与 repository 中的 id 一定要与 setting.xml 中 server 的 id 保持一致。如果是多模块项目的话,只需要在父pom.xml中声明这些,子pom.xml中只需要修改相应的一些信息,如name标签。

5、上传构件到 OSS 中
自己配置profiles时使用:
mvn clean deploy -Prelease
使用官网parent时使用:
mvn clean deploy -P sonatype-oss-release-Darguments="gpg.passphrase=密钥密码"
当执行以上 Maven 命令时,会自动弹出一个对话框,需要输入上面提到的 Passphase,它就是刚才设置的 GPG 密钥库的密码。随后会看到大量的 upload 信息,因为在国内网络的缘故,时间有点久,耐心等待吧。

注意:此时上传的构件并未正式发布到中央仓库中,只是部署到 OSS 中了,下面才是真正的发布。

6、在OSS 系统中发布构件
在 https://oss.sonatype.org系统中,使用自己的 Sonatype 账号登录后,可在 Staging Repositories 中查看刚才已上传的构件,这些构件目前是放在Staging 仓库中,可进行模糊查询,快速定位到自己的构件。此时,该构件的状态为 Open,需要勾选它,然后点击 Close 按钮。系统会自动验证该构件是否满足指定要求,当验证完毕后,状态会变为Closed。

发现release版本才会出现在Staging Repositories里,snapshot版本不会出现在这里

最后,点击 Release 按钮来发布该构件

在Staging Profiles可以看到正在release
7、通知 Sonatype 构件已成功发布
这个前面的Sonatype工作人员其实在审核你的Issue时,在comment中已经提示你了,在Issue下面回复一条“构件已成功发布”的评论,这是为了通知 Sonatype 的工作人员为需要发布的构件做审批,发布后会关闭该Issue。

等待构件审批通过
这个又只能等待了,当然他们晚上上班,还是第二天看。当审批通过后,将会收到邮件通知。

从中央仓库中搜索构件
这时,就可以在maven的中央仓库中搜索到自己发布的构件了,以后可以直接在pom.xml中使用了!
中央仓库搜索网站:http://search.maven.org/
第一次成功发布之后,以后就不用这么麻烦了,可以直接使用Group Id发布任何的构件,当然前提是Group Id没有变。

以后的发布流程:
a)构件完成后直接使用maven在命令行上传构建;
b)在https://oss.sonatype.org/clos...;
c)等待同步好(大约2小时多)之后,就可以使用了


http://blog.csdn.net/hj7jay/a...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70911.html

相关文章

  • 如何JAR发布Maven中央仓库

    摘要:我们需要将包发布到一些指定的第三方仓库,然后该仓库再将包同步到中央仓库。安装并配置发布到仓库中的所有文件都要使用签名,以保障完整性。发布包执行处理,即可将包发布到仓库。若符合要求,则成功,成功之后点击箭头所指的,即可正式将包发布到仓库。 将jar包发布到Maven中央仓库(Maven Central Repository),这样所有的Java开发者都可以使用Maven直接导入依赖,例如...

    android_c 评论0 收藏0
  • Maven就是这么简单

    摘要:软件项目的管理就会变得简单很多。比如说的驱动程序,,在是获取不到的,就需要手工上传到里是仓库组,在里没有这个概念,是特有的。 什么是Maven Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中.. Maven是一款跨平台的项目...

    leonardofed 评论0 收藏0
  • Maven 实战

    摘要:的主要思想是约定优于配置。强烈建议遵循以上规范,避免不必要的麻烦。依赖传递依赖范围除了控制,还会对依赖传递产生影响。此外还提供了和来进一步管理依赖,分别称为可选依赖和排除依赖。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平台的项目管理工具,主要服务于基于Java...

    twohappy 评论0 收藏0
  • Maven学习笔记

    摘要:学习笔记先生,您在写代码吗不,我们正在完成一项伟大的工程。于是打算重新学习一下。中央仓库镜像为了分担中央仓库的流量,提升用户的访问速度。生成项目报告,站点,发布站点。修改源码后也需要逐个手动进行操作。 maven学习笔记 先生,您在写代码吗? 不,我们正在完成一项伟大的工程。 前言 在刚学maven时,我就把maven当作一个引入jar包的工具而已,以前是自己下载jar包,现在是只用...

    tomlingtm 评论0 收藏0

发表评论

0条评论

沈俭

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<