前言
Android開發在很多時候都想很方便的使用別人和自己的開源庫,不希望將已經封裝好的模塊在多個項目中進行無休止的復制、粘貼;最好的方式就是將自己封裝好的庫發布到JCenter中,然后在新項目的APP Module中進行compile依賴,實現上傳到JCenter中的方法有很多,本文介紹一種非常簡單的方式進行上傳--bintray-release
方法
1.建立封裝庫
上傳到JCenter中一定要有一個庫,所有需要在Android studio中新建一個類型為library的封裝庫
新建封裝庫
2.注冊bintray.com賬號
JCenter其實就是一個maven倉庫,注冊bintray.com賬號其實就是擁有上傳權限的第一步(因為JCenter庫是由bintray維護的)
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網站新建的Repository名,類型為maven)
groupId = 'com.ricky'//jcenter上的路徑
artifactId = 'avanti'//項目名稱
publishVersion = '1.1.0'//版本號
desc = 'Custom Android fast develop framework'//描述,不重要
website = 'https://github.com/AndRickyChan/Avanti'//網站,不重要;可以填寫項目的github地址
}
注意:
- repoName值必須和bintray中新建的Repositoty名相同,不然上傳過后容易出現404錯誤提示,如果你新建的Repositoty名為"maven",則這個值可以不傳,bintray默認這個值為"maven"
- 新建的Repositoty的類型應為maven,協議應為Apache2.0
4.開始上傳
執行下面代碼進行上傳
./gradlew clean build bintrayUpload
-PbintrayUser=rickychan
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
注意:
- 執行上面代碼是在命令行下,目錄必須在當前項目的根目錄下,可以在Adnroid Studio的Terminal中執行(windows用戶不需要輸入前面的./)
- PbintrayUser為bintray注冊設置的用戶名;PbintrayKey為bintray生成的key
5.提交審核
提示上傳成功后,就可以在 https://bintray.com/你的用戶名/你的Repository名 中看到你上傳的library
上傳后項目截圖
點擊項目進入詳情即可提交審核
提交審核
注意:
- 在我寫文章時候我的項目已經審核通過了,所以提交的按鈕消失了,具體位置已在圖中標出。
- 經過幾個小時過后,JCenter審核通過,就可以使用上圖標出的依賴了。
細節介紹
1.在執行上傳代碼的時候,有可能出現錯誤,請按照命令行提示的錯誤進行修改,然后重新執行上傳操作。
2.如果上傳的library Module的build.gradle中存在中文代碼或者注釋,則需要在項目的build.gradle文件中進行配置
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參數即可,更新庫不需要等待bintray審核,會在自己新建的Repository中生成一個新版本的分支,點擊可查看詳情
倉庫更新
其他
在學習將自己的庫上傳到JCenter的時候參考的是hongyang大神的博客,然后根據提交過程中產生的錯誤進行的實踐,對細節進行了相應的補充。