如下内容为原创,欢迎转载,转载请注明html
来自每天博客:http://www.cnblogs.com/tiantianbyconan/p/4388175.html android
此文针对开源爱好者。git
若是你想让别人使用你的Android开源库,第一种方法是,提供你的Github地址,让别人clone一份,而后让别人import到他的项目中。另外一种更简单的方式就是直接让别人在他的Gradle中添加你的库依赖,以下:github
compile 'com.github.wangjiegulu:AndroidBucket:1.0.1'
若是想使用第二种方式,你须要将你的项目提交到公共的中心库。apache
这里介绍使用sonatype来把你的开源库(snapshot或release)提交到Maven的中心库。
app
1. 首先,在https://issues.sonatype.org中注册帐号。jsp
2. 而后在https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134中新建一个“Project ticket”。maven
-Summary:填写项目名称ide
-Description:填写描述gradle
-Group Id:域名反转,若是没有域名,就直接使用github反转(如github.com/wangjiegulu --> com.github.wangjiegulu),具体看http://central.sonatype.org/pages/choosing-your-coordinates.html
-Project URL:项目的url,能够是项目的github地址。如https://github.com/wangjiegulu/AndroidBucket
-SCM url:版本控制的uri,如https://github.com/wangjiegulu/AndroidBucket.git
3. 建立完毕后就等待状态变为“resolved”,而后你就可使用Gradle上传项目了。
4. 上传前须要进行GPG签名,因此先去下载GPG(https://www.gnupg.org/download/index.html),而后打开
新建一个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: o***hUsername, password: o***hPassword) } snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { authentication(userName: o***hUsername, password: o***hPassword) } //构造项目的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=XXXXXXXXX signing.password=XXXXXXXXXsigning.secretKeyRingFile=/Users/wangjie/.gnupg/secring.gpg
o***hUsername=oss.sonatype.org或者issues.sonatype.org的帐号(同一个)
o***hPassword=oss.sonatype.org或者issues.sonatype.org的密码(同一个)
全部配置完毕后执行gradle uploadArchives进行上传操做。
7. 登陆https://oss.sonatype.org,点击左边的“Staging Repositories”,而后刚刚上传的项目名称为com.github.wangjiegulu去掉点-数字
选中后点击“Close”,若是成功,则再点击“Release”按钮发布。
而后再等待2小时,就能够在Maven中心库中搜索到了。
注意:之后若是须要再上传其它项目的时候,直接从第4步开始便可,由于你的groupId已经申请过了,之后新的artifacts能够直接部署到这个groupId中。