寫個開頭的重點注意事項:一定要確保網絡可以翻牆,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