以下內容爲原創,歡迎轉載,轉載請註明
來自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4388175.html
此文針對開源愛好者。
如果你想讓別人使用你的Android開源庫,第一種方法是,提供你的Github地址,讓別人clone一份,然後讓別人import到他的項目中。另一種更簡單的方式就是直接讓別人在他的Gradle中添加你的庫依賴,如下:
compile 'com.github.wangjiegulu:AndroidBucket:1.0.1'
如果想使用第二種方式,你需要將你的項目提交到公共的中心庫。
這裏介紹使用sonatype來把你的開源庫(snapshot或release)提交到Maven的中心庫。
1. 首先,在https://issues.sonatype.org中註冊賬號。
2. 然後在https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134中新建一個“Project ticket”。
-Summary:填寫項目名稱
-Description:填寫描述
-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:[email protected]:wangjiegulu/AndroidBucket.git' connection 'scm:[email protected]:wangjiegulu/AndroidBucket.git' developerConnection '[email protected]: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 '[email protected]' } } } } } }
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中。
參考:http://central.sonatype.org/pages/o***h-guide.html