怎样提交本地jar到Maven中央仓库(windows)

2018-03-01 11:18:57来源:oschina作者:bruceliu2人点击

分享

最近在开发推送SDK,在做push sdk的服务端sdk的java版本的时候,就一直想把client能构建到Maven中央仓库,方便开发者使用。


项目git地址 : https://github.com/MOBX/mobpush-api-java-client  有需要可以参考下,主要是里面的pom.xml ,下面的也会用到。


先上结果 http://search.maven.org/#artifactdetails%7Ccom.mob.sdk.push ,其实网上也有很多教程,但是还是不是很清晰,好像都是一个版本来的,没有给我等使用windows屌丝的具体指明完整道路,顾记录此文章。




下面说下具体步骤把 :


1、注册sonatype账号

因为Maven中央仓库是由sonatype免费给维护的,所以需要到 https://issues.sonatype.org/secure/Signup!default.jspa 注册sonatype账号。一定要记得此账号密码,后面配置maven的servers节点需要用到此账号和密码。


还需要记录一个地址 : https://oss.sonatype.org (这个后面issues里面也有会连接的)


这个就是私服仓库了,可以在里面查看到jar的状态等信息


image


2、创建发布申请的issues

可以到地址https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134 去发布申请的issues,里面有需要注意填写的内容


Group Id  : 这个填写你maven项目的Group Id 就好了,但是有注意这个可能在审核issues的时候,工作人员会询问是否有group id的所有权。

image


 * SCM url : 这个就需要填写源代码的路径,需要审核issues的人员能访问,我使用的是github (https://github.com/MOBX/mobpush-api-java-client)  这个也是需要后面在项目pom.xml里面配置scm标签的。


Project URL: 这个我这里填写的是官网地址

其他没啥了,可以的话按照要求填写相关的描述即可,提交和需要等待审核,这个需要点时间,应该要看情况吧,我提交的issues审核很快就通过,自己多关注下哈,也会有邮件通知的。


等到issues的状态变更为Resolved就可以了,看到下面这个图表示你已经成功通过了开始的审核,后面就可以进行构建上传了。


image


3、使用 GPG 生成密钥对

需要下载一个GPG 来进行文件加密,windows 可以到地址 https://www.gpg4win.org/download.html 下载 按照步骤安装即可。


在安装目录的bin下打开Kleopatra即可


image


在窗口上进入  文件--> 新建密钥对-->创建个人OpenPGP密钥对


image


输入名称和邮箱,一直下一步下一步到输入密码界面,这里的密码需要记住,是后面maven打包的时候需要输入的确认密码


image


4、maven配置和pom.xml配置

在您maven的setting.xml 加入如下配置:




自定义id,需要和后面pom.xml对应即可,如ossrh
您申请的sonatype账号
sonatype账号对应密码


在您项目的pom.xml 增加其中没有的配置(如下是 mobpush client for java 的一个pom.xml例子):


<?xml version="1.0"?>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4.0.0
com.mob.sdk.push
mobpush-api-java-client

1.0.0
mobpush-api-java-client
https://github.com/MOBX/mobpush-api-java-client
MobPush API for Java


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




hlliu
hlliu@youzu.com
mob
http://www.mob.com





scm:git:https://github.com/MOBX/mobpush-api-java-client.git


scm:git:https://github.com/MOBX/mobpush-api-java-client.git

https://github.com/MOBX/mobpush-api-java-client
1.0.0

UTF-8
github
UTF-8
1.6
1.6



org.apache.httpcomponents
httpclient
4.5.3
compile


org.slf4j
slf4j-api
1.7.7


org.slf4j
slf4j-log4j12
1.7.7


log4j
log4j
1.2.17


com.alibaba
fastjson
1.2.31





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


-Xdoclint:none



package

jar






org.apache.maven.plugins
maven-gpg-plugin
1.6


verify

sign









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


ossrh
https://oss.sonatype.org/service/local/staging/deploy/maven2/





注意:以上 pom.xml 必须包括:name、description、url、licenses、developers、scm 等基本信息,此外,使用了 Maven 的 profile 功能,只有在 release 的时候,创建源码包、创建文档包、使用 GPG 进行数字签名。此外,请注意pom.xml里面注释需要保持一致的地方。


5、构建发布jar

进入您项目执行maven命令


mvn clean deploy -P release verify -Dgpg.passphrase={您PGP密码}

-P release是构建环境,需要和pom.xml里面配置一致,在执行过程中,会弹出提示框让你输入PGP的密码,输入后确认即可,看网络情况,我本地上传比较快,大概1分钟就好了


6、在OSS中发布构件

以为进行第5步就OK了,还需要继续呢,需要在OSS里面发布构建,登陆 https://oss.sonatype.org(使用 sonatype 申请的账号和密码即可)


image.png


登陆后选择Staging Repositories ,可以看到您刚上传的的是open状态,勾选后点击上面的Close即可,会弹框确认,确认就好了。


(需要等待N分钟,也许1分钟就好了)


重新刷新本页面,看到您上传的项目是close状态,此时再勾选后选择上面的Release,也会提示弹框确认,确认就好了。


7、通知关闭issues

以上步骤完成后,就等待最终的审核了。到您申请的issues的页面 增加备注 “The component has been successfully released”(告知就好了,怎么写自己看着办),好了 ,确实已经到了最后审核了
我提交的大概1、2个小时就好了,好了也会有邮件通知的。


审核通过后可以到 http://search.maven.org 查看,就如我开始给的结果,over ~

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台