android开源jecenter,上传Android或Java库到Maven central repository(转载)

主要介绍利用Sonatype将jar或aar提交到Maven的中央仓库。

是不是希望将自己的jar或是aar传到maven官方库中,在The Central Repository中可以被其他人搜索使用呢,是的话,往下看吧。

1、Sonatype简介

Sonatype使用Nexus为开源项目提供托管服务。你可以通过它发布快照(snapshot)或是稳定版(release)到Maven中央仓库。我们只要注册一个Sonatype的JIRA账号、创建一个JIRA ticket,然后对POM文件稍作配置即可。

2、注册账号

打开https://issues.sonatype.org/ 注册Sonatype的JIRA账号,这个账号在后面配置maven server时需要使用。

打开Create a OSSRH ticke 创建一个JIRA ticket,你的一个项目对应着这里的一个JIRA ticket,

其中Summary可以填写项目名,Description填写项目介绍。

Group Id非常重要,必须是你项目pom.xml中的group id的父级,做为你账号和该项目关联的标记。如我项目pom.xml中group id为cn.trinea.android.common,为了我所有项目都可以发布,申请填写的Group Id为cn.trinea

其他按照提示填写即可。完成后大概2个工作日左右,该Issue会变为 _resolved_ 状态表示可用,在可用前下面的过程除了第7步 正式发布外,其他的都没有问题。

3、软件环境

(1) JDK5以上

(2) Subversion 或是 Git

这是根据你项目需要的,你项目用什么版本控制管理工具

(3) Maven 2.2.1+

(4) GPG,用于对需要上传的文件加密和签名

下载地址:https://www.gnupg.org/download/index.html,windows版下载地址:http://gpg4win.org/

安装完成后通过在命令行模式下通过

1

gpg--gen-key

命令生成自己的public key,除了姓名、邮箱、备注外其他都可以使用默认配置,最后需要填写一个passphase,注意它在后面mvn release签名时需要。

public key生成结束后用

1

gpg--list-keys

命令查看key内容,如下:

XHTML

1

2

3

4

5

C:/Users/Trinea/AppData/Roaming/gnupg/pubring.gpg

--------------------------------------------------------

pub2048R/C6EED57A2014-05-11

uidTrinea(www.trinea.cn)

sub2048R/932D6F332014-05-11

其中C6EED57A为key id,需要将他上报给服务器,命令如下:

1

gpg--keyserverhkp://pool.sks-keyservers.net--send-keysC6EED57A

这样便完成了gpg public key的创建和上报操作。

4、标准的Pom文件格式

(1) POM文件必须含有以下元素

(2) 如果是jar文件,必须包含-javadoc.jar及-sources.jar,即需要在POM中配置build的相应plugin

其中需要修改以下地方

(1) 相关元素信息改为你自己项目信息。

(2) 必须保证parent或parent的parent为

Java

1

2

3

4

5

org.sonatype.oss

oss-parent

7

(3) 如果你版本控制使用的不是git,而是其他工具,配置见POM and settings config

(4) 纯Java(非Android)工程需要将aar改为jar,并且去掉

Java

1

2

3

4

5

6

7

com.google.android

android

4.0.1.2

provided

Java

1

2

3

4

5

6

7

8

9

10

11

12

com.jayway.maven.plugins.android.generation2

android-maven-plugin

3.8.0

14

true

true

5、配置Maven仓库地址

在.m2目录下的settings.xml文件中添加

Java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

...

sonatype-nexus-snapshots

your-jira-id

your-jira-pwd

sonatype-nexus-staging

your-jira-id

your-jira-pwd

...

将其中的your-jira-id和your-jira-pwd替换为你在https://issues.sonatype.org/上的用户名和密码。

m2 目录在linux下路径为/home/user-name/.m2,windows下路径为C:\Users\your-user-name\.m2

6、编译上传

(1) 发布一个snapshot版本

mvn clean deploy

发布完成后登陆https://oss.sonatype.org (https://issues.sonatype.org/ 上的用户名和密码),通过下图步骤找到自己的Artifact(上传的jar或aar或pom等)

147b657e0c80cde8e2b26f0b5f3aa1f1.png

(2) 发布一个release版本

mvn release:clean release:prepare release:perform

过程中需要通过GPG签名,需要输入上面的passphase。发布完成后我们依然可以通过类似上图步骤找到我们的Artifact

7、正式发布

这里的正式发布是指同步到Maven主仓库使得其他人可以使用。主要包括Close和Release两步,先Close后Release,分别如下图

dmVyc2lvbj0xJmFtcDttb2RpZmljYXRpb25EYXRlPTEyNzk3MjAwMTMxNjY=.jpg

L3Byb3h5L2h0dHBzL2RvY3Muc29uYXR5cGUub3JnL2Rvd25sb2FkL2F0dGFjaG1lbnRzLzY2MTkyODQvc3RhZ2luZ19yZWxlYXNlLnBuZz92ZXJzaW9uPTEmYW1wO21vZGlmaWNhdGlvbkRhdGU9MTI3OTcyMDU0NDY3MA==.jpg

其他不明白可以查看:Release

需要注意

(1) 在release时可能会出现

XHTML

1

2

Releasefailed

Nexusreturnedanerror:ERROR403:Forbidden

的403弹窗,这可能是因为在2中创建的JIRA ticket,状态还没有变为 _resolved_,等待可用即可。如果上面截图中你的Repository列表中Profile列的值不是你在创建JIRA ticket时的Group Id需要重新提交。

(2) 如果是第一次release,需要到之前你的JIRA ticket下,评论下告诉他们,你已经release了,需要同步下,我的JIRA ticket: OSSRH-9800.  如下图:

bdd61e23ec8cc68356ae4ffe541bca1f.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值