博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android]使用Gradle提交自己开源Android库到Maven中心库
阅读量:5874 次
发布时间:2019-06-19

本文共 3472 字,大约阅读时间需要 11 分钟。

以下内容为原创,欢迎转载,转载请注明

来自天天博客:

 

此文针对开源爱好者。

如果你想让别人使用你的Android开源库,第一种方法是,提供你的Github地址,让别人clone一份,然后让别人import到他的项目中。另一种更简单的方式就是直接让别人在他的Gradle中添加你的库依赖,如下:

compile 'com.github.wangjiegulu:AndroidBucket:1.0.1'

如果想使用第二种方式,你需要将你的项目提交到公共的中心库。

这里介绍使用sonatype来把你的开源库(snapshot或release)提交到Maven的中心库。

1. 首先,在中注册账号。

2. 然后在中新建一个“Project ticket”。

-Summary:填写项目名称

-Description:填写描述

-Group Id:域名反转,如果没有域名,就直接使用github反转(如github.com/wangjiegulu --> com.github.wangjiegulu),具体看

-Project URL:项目的url,可以是项目的github地址。如

-SCM url:版本控制的uri,如

3. 创建完毕后就等待状态变为“resolved”,然后你就可以使用Gradle上传项目了。

4. 上传前需要进行GPG签名,所以先去下载GPG(),然后打开

新建一个Keychain,完成后右键“Send Public Key to Key Server”,这样就能把你的public key发送到服务端。

5. 然后我们再打包项目的aar文件,intellij idea和android studio使用gradle构建后,会在build中自动生成该文件,直接把他拷出来即可。

6. 然后新建build.gradle来进行我们的上传操作,大概内容如下:

// *********************************************************************apply plugin: 'maven'apply plugin: 'signing' //使用signing plugin做数字签名//定义GroupID和Version,ArtefactID会自动使用Project名group = 'com.github.wangjiegulu'version = '1.0.1'repositories {    mavenCentral();}artifacts {    archives file('AndroidBucket.aar')}signing {    sign configurations.archives}uploadArchives {    repositories {        mavenDeployer {            //为Pom文件做数字签名            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }            //指定项目部署到的中央库地址,UserName和Password就是Part 1中注册的账号。            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {                authentication(userName: ossrhUsername, password: ossrhPassword)            }            snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {                authentication(userName: ossrhUsername, password: ossrhPassword)            }            //构造项目的Pom文件,参见Part 2中Pom文件的规范,不要遗漏必填项            pom.project {                name project.name                packaging 'aar'                description 'Android开发常用整理'                url 'https://github.com/wangjiegulu/AndroidBucket'                scm {                    url 'scm:git@github.com:wangjiegulu/AndroidBucket.git'                    connection 'scm:git@github.com:wangjiegulu/AndroidBucket.git'                    developerConnection 'git@github.com:wangjiegulu/AndroidBucket.git'                }                licenses {                    license {                        name 'The Apache Software License, Version 2.0'                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'                        distribution 'wangjie'                    }                }                developers {                    developer {                        id 'wangjie'                        name 'Wagn Jie'                        email 'tiantian.china.2@gmail.com'                    }                }            }        }    }}

archives file('AndroidBucket.aar') 表示指定上传的aar文件。

signing {    sign configurations.archives}

表示对内容进行gpg签名,既然需要签名,那需要在gradle.properites中配置key的信息,还有上传的账号密码:

signing.keyId=XXXXXXXXXsigning.password=XXXXXXXXXsigning.secretKeyRingFile=/Users/wangjie/.gnupg/secring.gpg

  ossrhUsername=oss.sonatype.org或者issues.sonatype.org的账号(同一个)

  ossrhPassword=oss.sonatype.org或者issues.sonatype.org的密码(同一个)

所有配置完毕后执行gradle uploadArchives进行上传操作。

7. 登录,点击左边的“Staging Repositories”,然后刚刚上传的项目名称为com.github.wangjiegulu去掉点-数字

选中后点击“Close”,如果成功,则再点击“Release”按钮发布。

然后再等待2小时,就可以在Maven中心库中搜索到了。

 

注意:以后如果需要再上传其它项目的时候,直接从第4步开始即可,因为你的groupId已经申请过了,以后新的artifacts可以直接部署到这个groupId中。

 

参考:

你可能感兴趣的文章
02、Http协议
查看>>
div中嵌套div水平垂直居中
查看>>
Android数据存储(3):External Storage
查看>>
加快ALTER TABLE 操作速度
查看>>
牛客网暑期ACM多校训练营(第三场) E Sort String 哈希处理字符串(模板)
查看>>
MySQL字符集小结
查看>>
搭建用友开发环境(基于碧桂园的nchome)
查看>>
Java中startWith方法的使用!
查看>>
Python多线程学习(上)
查看>>
centos7 安装nginx
查看>>
spring cloud eureka 配置
查看>>
查找nginx安装的路径
查看>>
批量 kill mysql 中运行时间长的sql
查看>>
Docker发布镜像至Docker Hub
查看>>
实验二
查看>>
学习笔记之软考数据库系统工程师教程(第一版)
查看>>
HDU1161 Eddy's mistakes
查看>>
开启事务处理插入多条数据 速度也可以
查看>>
Linux下ping加上时间戳
查看>>
python __call__或者说func()()的理解
查看>>