前言
Android開發(fā)在很多時候都想很方便的使用別人和自己的開源庫,不希望將已經(jīng)封裝好的模塊在多個項目中進(jìn)行無休止的復(fù)制、粘貼;最好的方式就是將自己封裝好的庫發(fā)布到JCenter中,然后在新項目的APP Module中進(jìn)行compile依賴,實現(xiàn)上傳到JCenter中的方法有很多,本文介紹一種非常簡單的方式進(jìn)行上傳--bintray-release
方法
1.建立封裝庫
上傳到JCenter中一定要有一個庫,所有需要在Android studio中新建一個類型為library的封裝庫

新建封裝庫
2.注冊bintray.com賬號
JCenter其實就是一個maven倉庫,注冊bintray.com賬號其實就是擁有上傳權(quán)限的第一步(因為JCenter庫是由bintray維護(hù)的)

bintray注冊界面
- 注意:注冊成功后登錄,然后按圖所示操作,保存好生成的key,后面會用到。

保存key
3.在項目中引入bintray-release
3.1.在項目的build.gradle中添加依賴
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.novoda:bintray-release:0.4.0' //添加
}
}
- 注意:這個是在項目中的build.gradle, 不是APP Module中的build.gradle
3.2.配置需要上傳的 Library Module
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release' //添加
android{ //不變
}
dependencies{ //不變
}
// 添加
publish {
userOrg = 'rickychan'//bintray.com用戶名
repoName = 'android'//Repository名(bintray網(wǎng)站新建的Repository名,類型為maven)
groupId = 'com.ricky'//jcenter上的路徑
artifactId = 'avanti'//項目名稱
publishVersion = '1.1.0'//版本號
desc = 'Custom Android fast develop framework'//描述,不重要
website = 'https://github.com/AndRickyChan/Avanti'//網(wǎng)站,不重要;可以填寫項目的github地址
}
注意:
- repoName值必須和bintray中新建的Repositoty名相同,不然上傳過后容易出現(xiàn)404錯誤提示,如果你新建的Repositoty名為"maven",則這個值可以不傳,bintray默認(rèn)這個值為"maven"
- 新建的Repositoty的類型應(yīng)為maven,協(xié)議應(yīng)為Apache2.0
4.開始上傳
執(zhí)行下面代碼進(jìn)行上傳
./gradlew clean build bintrayUpload
-PbintrayUser=rickychan
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
注意:
- 執(zhí)行上面代碼是在命令行下,目錄必須在當(dāng)前項目的根目錄下,可以在Adnroid Studio的Terminal中執(zhí)行(windows用戶不需要輸入前面的./)
- PbintrayUser為bintray注冊設(shè)置的用戶名;PbintrayKey為bintray生成的key
5.提交審核
提示上傳成功后,就可以在 https://bintray.com/你的用戶名/你的Repository名 中看到你上傳的library

上傳后項目截圖
點擊項目進(jìn)入詳情即可提交審核

提交審核
注意:
- 在我寫文章時候我的項目已經(jīng)審核通過了,所以提交的按鈕消失了,具體位置已在圖中標(biāo)出。
- 經(jīng)過幾個小時過后,JCenter審核通過,就可以使用上圖標(biāo)出的依賴了。
細(xì)節(jié)介紹
1.在執(zhí)行上傳代碼的時候,有可能出現(xiàn)錯誤,請按照命令行提示的錯誤進(jìn)行修改,然后重新執(zhí)行上傳操作。
2.如果上傳的library Module的build.gradle中存在中文代碼或者注釋,則需要在項目的build.gradle文件中進(jìn)行配置
allprojects {
repositories {
jcenter()
}
//添加
tasks.withType(Javadoc) {
options {
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
3.如果library更新,則需要重新上傳,上傳代碼不變,只需要改變需要上傳的Module中的build.gradle中的配置,更改publishVersion參數(shù)即可,更新庫不需要等待bintray審核,會在自己新建的Repository中生成一個新版本的分支,點擊可查看詳情

倉庫更新
其他
在學(xué)習(xí)將自己的庫上傳到JCenter的時候參考的是hongyang大神的博客,然后根據(jù)提交過程中產(chǎn)生的錯誤進(jìn)行的實踐,對細(xì)節(jié)進(jìn)行了相應(yīng)的補充。