背景
最近得閒 將封裝的開源專案上傳到JCenter
上,方便供大家使用,但是突然發現Bintray
網站更新變化很大,
以前老方法上傳,過於複雜,程式碼量也很多,每次編寫新庫上傳,複製程式碼心累,大家都懂。於是百度,有沒有更簡便上傳方式
我在網上網上很多部落格講解的 Bintray-極簡上傳Library到JCenter 發現對自定義maven倉庫名配置,
很多部落格文章裡沒有說明,這一篇文章是講解如何上傳自定義maven倉庫下。
開始我們的上傳之路!
註冊
註冊是踩坑的第一步,很多部落格或者網站都是直接推薦去官網首頁註冊:
絕對不要去這裡註冊
注意:千萬別點這裡註冊,這裡現在預設註冊的是組織,並不是個人
我就是這一步走錯了被這一步坑了,導致一天都沒將開源專案提上去
重要的事情說三遍:
個人正確的註冊地址:bintray.com/signup/oss
個人正確的註冊地址:bintray.com/signup/oss
個人正確的註冊地址:bintray.com/signup/oss
後邊註冊的步驟就很簡單了,有github
或者google
賬戶的同學直接登入就行了,如果要註冊需要注意郵箱不能是國內的郵箱
獲取key
和user
建立maven
倉庫
注意:建立的maven倉庫型別都寫成maven,倉庫名稱 任意名字,後面配置資訊會用到倉庫名稱
極簡上傳
檢視了網上的很多上傳方法都很複雜,也都親自實踐過,給大家介紹最簡單的一種,其他複雜的直接忽略了,因為也不是什麼很高深的東西,只要能到達目的就行了!
jecenter-Jecenter上傳開源庫有興趣的同學可以去看看原始碼
前提是你已經將需要開源的專案獨立成
module
,並且已經是com.android.library
1.根目錄下的build.gradle
中加入上傳開源庫的依賴:
classpath 'com.novoda:bintray-release:0.8.0'
複製程式碼
2.library
的module
中加入 apply
apply plugin: 'com.novoda.bintray-release'
複製程式碼
-
注意:bintray-releas的版本 依賴,對應你專案使用 Gradle 版本
1.bintray-releas version 0.8.0+ 對應 Gradle 是 version 4.1+ (包括4.1)(4.5 不適用)
2.bintray-releas version 0.7.0 對應 Gradle 是 version 4.1+ (包括4.1)
3.bintray-releas version 0.6.1 對應 Gradle 是 version 4.1+ (包括4.1)
4.bintray-releas version 0.5.0 對應 Gradle 是 version 3.4+ (包括3.4)
5.bintray-releas version 0.4.0 對應 Gradle 是 version 3.3+ (包括3.3)
6.bintray-releas version 0.3.4 對應 Gradle 是 version 1.3.0+(包括1.3)
如果版本不對應 就有可能專案庫上傳失敗 紅線內沒有版本號資訊
3.如果你開源庫中有中文註釋在module
的build.gradle
加入格式
allprojects {
repositories {
jcenter()
}
//加上這些
tasks.withType(Javadoc) {
options{ encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
//kotlin類庫上傳
//非常重要 要不它不認識你的專案.kt檔名 其中airpurgeview是你的library名
tasks.getByPath(":airpurgeview:releaseAndroidJavadocs").enabled = false
複製程式碼
如何你的類庫採用kotlin語言, 請加上tasks.getByPath(":airpurgeview:releaseAndroidJavadocs").enabled = false
4.忽略錯誤資訊:module
的build.gradle
android {
******
******
lintOptions {
abortOnError false
}
}
複製程式碼
5.配置基本資訊
publish {
repoName="ycjiang"//倉庫名
userOrg = 'ycjiang' //bintray註冊的使用者名稱
groupId = 'com.ycjiang' //compile引用時的第1部分groupId
artifactId = 'QiniuModule' //compile引用時的第2部分專案名
publishVersion = '1.0.1' //compile引用時的第3部分版本號
desc = 'This is a rxbus same of eventbus extend library '//d專案描述
repoName="ycjiang" //你的倉庫名稱,沒有填寫預設倉庫是maven//這也是很多人上傳倉庫不對名問題最多情況,
website = '' //github 託管地址
}
複製程式碼
6.倉庫名重要性
-
repoName 如果沒有填寫,上傳的庫預設倉庫是maven,這個:bintray-release上傳也是最多原因.
-
很多使用者的壓根沒有這個倉庫, 然後百度,發現,Bintray需要手動建立倉庫是maven。
-
既然手動建立倉庫,為什麼倉庫名為何自己用定義倉庫名, Bintray是可以新建倉庫. repoName 這個屬性就可以自己專案上傳到自己定義倉庫下。
通過配置我們最後的依賴地址=第一部分+第二部分+第三部分;
compile 'com.ycjiang:QiniuModule:1.0.1'
複製程式碼
版本更新只需要修改publishVersion 即可;
7.切換到AndroidStudio temrinal
或者cmd
後臺中執行:
- 配置基本資訊沒有填寫 bintrayUser和bintrayKey 使用下面
windows
系統:
gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
複製程式碼
os x
系統中
如果出現拒絕該命令./gradlew: Permission denied
,可以先執行 chmod +x gradlew
再執行該命令;第一次執行需要下載檔案需要稍微等待。
./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
複製程式碼
其中BINTRAY_USERNAME換成bintray註冊的使用者名稱,BINTRAY_KEY換成自己的APIKEY
8.觀察後臺輸出:
回車執行命令,看到BUILD SUCCESS即上傳成功
9.釋出專案到公用Jecenter
中
回到主頁的你上傳倉庫中,點選進入,如果你上次成功即可看見你剛剛上次的開源專案
點選進入專案中,然後點選add
加入commit
就行了,一般需要等待稽核通過,一般5-6小時 commit內容推薦是同英文,不要中文
10.依賴使用
在稽核通過前可以通過配置自己私有倉地址使用
在更目錄下build.gradle配置地址
allprojects {
repositories {
jcenter()
jcenter(){ url 'http://jcenter.bintray.com/'} //JCenter下載慢測試
maven { url "https://dl.bintray.com/ycjiang/maven" }//稽核前可使用
}
複製程式碼
專案中加入依賴:
compile 'com.ycjiang:QiniuModule:1.0.1'
複製程式碼
好了,現在你就可以在你專案中依賴你的開源庫了,就是這麼簡單!
專案
在第一次上傳的過程中可以參考我的工程仿照配置