如下內容爲原創,歡迎轉載,轉載請註明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中。