將Android Library發佈到JCenter的成功祕籍

寫個開頭的重點注意事項:一定要確保網絡可以翻牆,VPN是必須的。

註冊 Bintray 賬號並創建倉庫 

Bintray 是 JCenter 庫的運營商,首先要去這個網站註冊一下賬號 https://bintray.com

注意:第一個綠色按鈕(“START YOUR FREE TRIAL”)是註冊企業帳號,只有一個月的試用期。個人用戶選擇上圖紅框框裏的按鈕(“For an Open Source Account”),點擊後會跳轉到https://bintray.com/signup/oss

注意:這裏的Email Address最好用gmail郵箱:[email protected]. QQ郵箱,網易郵箱暫沒有成功註冊過。如果是選擇Sign up with github,如果github綁定的郵箱是QQ郵箱也是不行的。So ,最好有gmail郵箱。

 

帳戶創建成功並登錄。

這裏就可以創建自己的資源倉庫,如裏沒有創建,後面上傳Library時不指定倉庫就會上傳到默認倉庫(maven).

點擊(“Add New Respository”),創建自己的資源倉庫

創建成功後返回會看到

至此,資源倉庫創建已創建成功,網上也有說需要在倉庫裏去創建一個包(Package),但根據我的實際操作,沒有創建包也是可以的,在執行時,發現沒有相應的包,會自己創建的。當前也可以自己去創建,但實在沒有必要多做這一步。

接下去配置Android studio工程

在工程的根Build.gradle文件中添加

classpath 'com.novoda:bintray-release:0.8.0'

注意,這裏的com.novoda:bintray-release版本是根據gradle版本號來配置的。

我這裏用的是gradle-4.6-all.zip,相應的bintray-release版本號爲0.8.0。如果兩者版本號匹配,則有可能上傳不成功.

在要上傳的module的build.gradle文件中添加

apply plugin: 'com.novoda.bintray-release'

上圖中的順序最好不變,將bintray-release放在第一位,否則可能有異常情況發生。

//加上這些(如果有中文註釋)
tasks.withType(Javadoc) {

    options{ encoding "UTF-8"

        charSet 'UTF-8'

        links "http://docs.oracle.com/javase/7/docs/api"

    }

}

繼續添加

publish {

    userOrg = '用戶名'      //bintray註冊的用戶名

    groupId = 'com.sample'         //compile引用時的第1部分groupId
	//compile引用時的第2部分項目名 //實際引用implementation ‘groupId:artifactId:publishVersion’
    artifactId = 'commonUtils'     

    publishVersion = '1.0.0'  //compile引用時的第3部分版本號 //實際引用implementation 'com.sample:commonUtils:1.0.0'
   
desc = 'common utils include http request uesd in android'//項目描述
   
repoName="NewCreate" //你的倉庫名稱,沒有填寫默認倉庫是maven//這也是很多人上傳倉庫不對名問題最多情況,
   
website = 'https://github.com/eastman-sz/AndroidLibs' //github 託管地址,最好有,實在沒有,可以爲空
   
dryRun=false
}


 

 



ext {
    PUBLISH_GROUP_ID =
'com.sample'
   
PUBLISH_ARTIFACT_ID = 'commonUtils'
   
PUBLISH_VERSION = '1.0.0'
}

/* 以下可以生成一個zip包,然後上傳到bintray,再發布到jCenter,這樣比較快捷 */

apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'

如下圖:

好了,到這裏項目裏的配置就算是完成了,準備上library上傳到bintray.

準備bintray key,這個在上傳的命令裏有用,在個人的bintray帳戶下獲得

將API key複製出來,看下面的命令

gradlew clean build bintrayUpload -PbintrayUser=用戶名(bintray) -PbintrayKey=替換真正的API_Key -PdryRun=false

如果是mac,命令頭部加./

./gradlew clean build bintrayUpload -PbintrayUser=用戶名(bintray) -PbintrayKey=替換真正的API_Key -PdryRun=false

打開android stuido的命令終端Terminal

執行命令

如果成功,就會顯示BUILD SUCCESSFUL

在Bintray的資源倉庫裏就會看見剛剛上傳的libray

這時可以看到,雖然上傳成功了,Bintray上也的剛上傳的libray,但是version並沒有顯示出來,所以也不能引用。接下來執行第二步命令,生成zip包,然後上傳到Bintray。

執行生成zip包的命令

gradlew clean build generateRelease

同樣,mac電腦在命令頭部加./

./gradlew clean build generateRelease

執行完成後,會看到所生成的zip包地址,如下圖

準備上傳zip包

第一步

第二步

第三步

第四步

第五步,發佈

發佈成功後,再次進入資源倉庫的包下,可以看到,已可引用,如下圖

到這一步,表明library已經上傳到bintray並可以引用。

注意,這時並沒有上傳到JCenter,引用時需要在工程的根build.gradle文件時添加

maven { url 'https://dl.bintray.com/你的Bintray用戶名/倉庫名}

然後就可以在需要引用的moudle的build.gradle中添加

implementation 'com.sample:commonUtils:1.0.0'

來引用commonUtils,如下圖

最後一步,上傳到JCenter.

接下來就是等待JCenter審覈,正常情況下,6個小時左右,一般不會超過24個小時,審覈成功後,會發郵件通知

好了,上傳JCenter成功,引用就非常簡單了

implementation 'com.sample:commonUtils:1.0.0'
一行就ok,再無其他。

如果需要更新,只需要更改版本即可,然後重複上面的必要步驟。

Congratulations

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章