以下內容為原創,歡迎轉載,轉載請注明
來自天天博客: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: 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=XXXXXXXXX signing.password=XXXXXXXXX signing.secretKeyRingFile=/Users/wangjie/.gnupg/secring.gpg
ossrhUsername=oss.sonatype.org或者issues.sonatype.org的賬號(同一個)
ossrhPassword=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中。