美文网首页
如何把jar包发布到中央仓库

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

作者: BUG弄潮儿 | 来源:发表于2017-12-26 21:57 被阅读0次

    1、在网站https://issues.sonatype.org/secure/Dashboard.jspa注册一个账号(请记住对应的账号和密码,之后需要用到)

    此外,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/download.html下载Gpg4win,安装好后通过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-keys5292CC898762C9D1237A561608DE5FBA6F7142E6

    4、修改Maven配置文件,需要同时修改全局的setting.xml和项目的pom.xml文件

    setting.xml修改:

    找到maven的全局配置文件settings.xml,在里面找到 节点,这个节点默认是注释掉的,增加如下配置:

    <servers>

    <server>

                              <id>   sonatype</id>

                    <username>用户名</username>

                     <password>密码</password>

    </server>

    </servers>

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

    pom.xml修改:

    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/close并release构件;

    c)等待同步好(大约2小时多)之后,就可以使用了

    跟多技术分享尽情关注

    http://blog.csdn.net/hj7jay/article/details/51130398

    相关文章

      网友评论

          本文标题:如何把jar包发布到中央仓库

          本文链接:https://www.haomeiwen.com/subject/ulsegxtx.html