上传jar到maven中央仓库

上传jar到maven中央仓库

概述

最近项目组要把java sdk(jar包)放到maven中央仓库(Central Repository),把自己的实践过程整理下来。

目前最流行的发布jar包方式是把jar包上传到maven仓库,可能是自建仓库或者中央仓库。自建仓库一般只供公司内部或个人使用,对外发布的jar包如java sdk可以上传到中央仓库,方便用户使用。

上传到中央仓库的官方指南:

http://central.sonatype.org/pages/ossrh-guide.html

一切都可以在官方指南上找到答案。

1. 上传源码到github

自己先创建或已拥有github账号,比如我的是zhenghuabin。
源码可能属于个人或者组织,
1. 组织 先创建或已拥有组织的github账户,个人加入该组织,在组织里创建 repository。
2. 个人 在个人账户里创建repositoryhttps://github.com/zhenghuabin
比如我们项目组在github上创建了organization NetEase-Object-Storage,在这个organization里创建repository nos-java-sdk,将代码上传到该仓库,如下:

$ pwd
/d/nos-java-sdk
$ git init
$ git add ./*
$ git commit -m "first commit"
$ git remote add origin https://github.com/NetEase-Object-Storage/nos-java-sdk.git
$ git push -u origin master   #下面输入自己的github用户名和密码
Username for 'https://github.com': zhenghuabin
Password for 'https://zhenghuabin@github.com':

2. Create a ticket with Sonatype

  1. 创建jira账户 https://issues.sonatype.org/secure/Signup!default.jspa
  2. 建jira https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134
    其中*号为必填,必填项如下:
Summary: nos java sdk
Group Id: com.netease
Project URL:https://github.com/NetEase-Object-Storage
SCM url:https://github.com/NetEase-Object-Storage/nos-java-sdk.git

填好后点击Create,等待jira处理。由于时差缘故,一般第二天处理。

我建的jira为 https://issues.sonatype.org/browse/OSSRH-24366

3 使用PGP生成秘钥对(keys)

上传的artifacts(jar包)需要PGP签名

安装gpg

Windows下https://www.gpg4win.org/download.html下载安装包,安装完毕后,打开windows命令行终端

gpg --version  #查看是否成功
gpg --gen-key  #生成密钥对 Generating a Key Pair
gpg2 --list-keys  #查看公钥
gpg2 --list-keys
C:/Users/hzzhenghuabin/AppData/Roaming/gnupg/pubring.gpg
--------------------------------------------------------
pub   2048R/BD371CBD 2016-08-17
uid       [ultimate] zhenghuabin (hzzhenghuabin's key for nos java sdk) <hzzhenghuabin@corp.netease.com>
sub   2048R/5DBA3305 2016-08-17

gpg2 --list-secret-keys  #查看私钥
gpg2 --keyserver hkp://pool.sks-keyservers.net --send-keys BD371CBD  #发布公钥

其中 keyid为BD371CBD。

4. 发布到中央仓库

官方指南上提供了多种发布方式,我这里选择手动上传,即Manually Deploying to OSSRH

4.1 对artifacts进行pgp签名

gpg2 -ab nos-sdk-java-publiccloud-0.0.1-javadoc.jar #Signing a File 需要输入pgp密码

当前目录下生成了nos-sdk-java-publiccloud-0.0.1-javadoc.jar.asc文件

4.2 生成一个bundle

我选择bundle方式上传,

jar -cvf bundle.jar xxx-0.0.1.jar xxx-0.0.1.jar.asc xxx.pom xxx.pom.asc xxx-javadoc.jar xxx-javadoc.jar.asc xxx-sources.jar xxx-sources.jar.asc

其中xxx为我的构件名字nos-sdk-java-publiccloud.

4.3 上传和发布

https://oss.sonatype.org/ 用jira用户名和密码登陆

点击Staging Upload -> Upload Mode选Artifact Bundle -> Select Bundle to Upload.. 上传上面生成的bundle。

上传完毕后,可以点击Staging Repositories,找到自己的提交。通过了则为closed状态,未通过则是open状态(可以点Close按钮),有具体错误信息,可以点Drop删除掉,修改后再提交。

处于closed状态可以点击Release按钮发布。

4.4 评论jira

jira上增加Comment,告知已经发布了。sonatype工作人员将会处理jira,将artifact同步到中央仓库

4.5 中央仓库中搜索自己发布的artifact

可以登录http://search.maven.org/,搜索自己的构件,搜索到了,则发布成功。

参考文献

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值