Android(支援kotlin) 新版Bintray-極簡上傳Library到JCenter,可上傳自定義maven倉庫

jiangjang發表於2017-09-30

背景

最近得閒 將封裝的開源專案上傳到JCenter上,方便供大家使用,但是突然發現Bintray網站更新變化很大, 以前老方法上傳,過於複雜,程式碼量也很多,每次編寫新庫上傳,複製程式碼心累,大家都懂。於是百度,有沒有更簡便上傳方式 我在網上網上很多部落格講解的 Bintray-極簡上傳Library到JCenter 發現對自定義maven倉庫名配置, 很多部落格文章裡沒有說明,這一篇文章是講解如何上傳自定義maven倉庫下。

開始我們的上傳之路!


註冊

註冊是踩坑的第一步,很多部落格或者網站都是直接推薦去官網首頁註冊:

絕對不要去這裡註冊

20161217134804632.png

注意:千萬別點這裡註冊,這裡現在預設註冊的是組織,並不是個人

我就是這一步走錯了被這一步坑了,導致一天都沒將開源專案提上去

重要的事情說三遍:

個人正確的註冊地址:bintray.com/signup/oss

個人正確的註冊地址:bintray.com/signup/oss

個人正確的註冊地址:bintray.com/signup/oss

後邊註冊的步驟就很簡單了,有github或者google賬戶的同學直接登入就行了,如果要註冊需要注意郵箱不能是國內的郵箱


獲取keyuser

![Uploading 20170823113242_736797.png . . .]

20170823113242.png


建立maven倉庫

20170823114936.png

注意:建立的maven倉庫型別都寫成maven,倉庫名稱 任意名字,後面配置資訊會用到倉庫名稱

20161217141455168.png


極簡上傳

檢視了網上的很多上傳方法都很複雜,也都親自實踐過,給大家介紹最簡單的一種,其他複雜的直接忽略了,因為也不是什麼很高深的東西,只要能到達目的就行了!

jecenter-Jecenter上傳開源庫有興趣的同學可以去看看原始碼

前提是你已經將需要開源的專案獨立成module,並且已經是com.android.library

1.根目錄下的build.gradle中加入上傳開源庫的依賴:

classpath 'com.novoda:bintray-release:0.8.0'
複製程式碼

2.librarymodule中加入 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)

如果版本不對應 就有可能專案庫上傳失敗 紅線內沒有版本號資訊

20170826184107.png

20170826184635.png

3.如果你開源庫中有中文註釋在modulebuild.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.忽略錯誤資訊:modulebuild.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

回到主頁的你上傳倉庫中,點選進入,如果你上次成功即可看見你剛剛上次的開源專案

20170826191257.png

點選進入專案中,然後點選add加入commit就行了,一般需要等待稽核通過,一般5-6小時 commit內容推薦是同英文,不要中文

20170823124104.png

10.依賴使用

在稽核通過前可以通過配置自己私有倉地址使用

20170826192820.png

在更目錄下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'
複製程式碼

好了,現在你就可以在你專案中依賴你的開源庫了,就是這麼簡單!


專案

在第一次上傳的過程中可以參考我的工程仿照配置

傳送門-開源專案-JiPlay-戳我


相關文章