有時(shí)候我們使用其他的library包,直接下載下來(lái)或者在build.gradle中添加依賴,使用起來(lái)非常方便,這個(gè)時(shí)候想自己做一個(gè)library包給別人用,應(yīng)該怎么做呢?這個(gè)時(shí)候我們就需要用到j(luò)center。簡(jiǎn)單的來(lái)說(shuō)jcenter就是一個(gè)倉(cāng)庫(kù),而bintray就是工具把我們寫(xiě)好的代碼通過(guò)bintray上傳到j(luò)center。用戶用的時(shí)候,就是通過(guò)gradle中的一個(gè)引用,去倉(cāng)庫(kù)下載代碼。
首先注冊(cè)bintray,配置相關(guān)資料
首先我們要注冊(cè)一個(gè)bintray,注冊(cè)網(wǎng)址https://bintray.com/signup/oss。直接點(diǎn)擊進(jìn)行注冊(cè),注冊(cè)的時(shí)候需要用到一個(gè)郵箱,這里郵箱不能使用qq, 163等郵箱,需要用到谷歌和outlook郵箱,關(guān)于谷歌賬號(hào)和翻墻,相信對(duì)于我們開(kāi)發(fā)者來(lái)說(shuō)esay了。
注意:注冊(cè)網(wǎng)址不是https://bintray.com/login?后面這個(gè)地址注冊(cè)的是企業(yè)賬號(hào),需要審核1一個(gè)月還有試用期,如果不小心注冊(cè)了企業(yè)賬號(hào),也可以注銷(xiāo)再重新注冊(cè)個(gè)人賬號(hào)。
下面我們就開(kāi)始注冊(cè)bintray賬號(hào),如果有bintray直接略過(guò)這一步
賬號(hào)注冊(cè)好了之后,請(qǐng)進(jìn)入:https://bintray.com/profile/edit ——

請(qǐng)點(diǎn)擊 API Key,接下來(lái)

請(qǐng)點(diǎn)擊箭頭所指按鈕,對(duì) API Key 進(jìn)行復(fù)制,當(dāng)然如果你想點(diǎn)擊 Show 看一看自己的 key 我也不攔著你。你可能會(huì)有一個(gè)疑問(wèn) API Key 是什么?理解起來(lái)很簡(jiǎn)單,既然 square 公司發(fā)布了 okhttp3 的 3.8.1 版本,那么我可不可以在前面所提到的 module 中的 gradle 中把 groupId 改成 okhttp3 的 groupId,然后上傳新的版本覆蓋它呢?當(dāng)然不可以,一點(diǎn)是 groupId 是唯一的,另一點(diǎn)就是如果你想上傳 square 公司的 okhttp3 項(xiàng)目的話,一定要有它的 API Key,所以 API Key 就類(lèi)似一個(gè)賬號(hào)密碼的功能,來(lái)保障開(kāi)發(fā)者項(xiàng)目的唯一性。
個(gè)人中心界面,如下圖:
我們需要?jiǎng)?chuàng)建一個(gè)倉(cāng)庫(kù),來(lái)存放我們的開(kāi)源項(xiàng)目,所以點(diǎn)擊Add Repository會(huì)跳轉(zhuǎn)到如下界面

請(qǐng)務(wù)必將 Name 寫(xiě)成 maven,因?yàn)檫@樣可以幫你省去很多麻煩,然后 Type 務(wù)必選擇 Maven。創(chuàng)建好 repo 后,請(qǐng)進(jìn)入 repo 中,然后:
請(qǐng)點(diǎn)擊 Add New Package,這里請(qǐng)注意,以后如果你有新的 library 需要上傳到 jcenter,你不需要新建新的 repo,只需要進(jìn)入 Maven repo 后,點(diǎn)擊 Add New Package 即可,接下來(lái)就是填入相應(yīng)的信息并確認(rèn)即可。
點(diǎn)擊我們創(chuàng)建的倉(cāng)庫(kù):
點(diǎn)擊Add New Package:
需要注意的是Name需要和artiufactid一樣,否則會(huì)上傳失敗
完成你的 library
project 下 build.gradle
這是在 project 目錄下的 build.gradle 文件下添加以下依賴:

module 下 build.gradle
請(qǐng)?jiān)谀愕?module 下的 build.gradle 中添加如下依賴:

下面我們就開(kāi)始上傳我們的開(kāi)源項(xiàng)目了,打開(kāi)android studio的Termainal界面
執(zhí)行如下代碼
gradlew clean build bintrayUpload -PbintrayUser=**** -PbintrayKey=********** -PdryRun=false
需要注意的是每一個(gè)-前面都需要加上空格
gradlew clean build bintrayUpload?
-PbintrayUser=jcenter用戶名
-PbintrayKey=apikey就是剛剛查看到的
-PdryRun=false 寫(xiě)false代表要上傳
然后回車(chē),即可,等到上傳。如果按回車(chē),無(wú)法執(zhí)行,那么你需要將你的gradle添加到系統(tǒng)的環(huán)境變量中,再執(zhí)行此代碼就可以了,等待幾分鐘,保證你的電腦有網(wǎng)絡(luò),當(dāng)你看到BUILD SUCCESS那么久上傳成功了,上傳成功之后,進(jìn)入到你的倉(cāng)庫(kù)中就可以看到你上傳的項(xiàng)目了
add to jcenter
理想情況下你的庫(kù)已經(jīng)上傳到 bintray 上了,但是此時(shí)你的庫(kù)還不是公有的,需要手動(dòng)將庫(kù)從你目前的私人 repo 同步到 jcenter 中,打開(kāi)你的 repo 并進(jìn)入你的項(xiàng)目中,在如下的位置會(huì)有一個(gè) add to jcenter 的按鈕:

在點(diǎn)擊 add to jcenter 之后,就會(huì)進(jìn)入一個(gè)提交頁(yè)面,你可以在框框內(nèi)填上一些描述你庫(kù)功能的文字,然后就可以提交了:幾個(gè)小時(shí)審核之后,就可以正常調(diào)用了,最后就是棒棒的
注意:
(1) 在上傳的過(guò)程中提示失敗為:org.apache.http.conn.HttpHostConnectException: Connection to https://api.bintray.com refused
這個(gè)是網(wǎng)絡(luò)的問(wèn)題,多重新上傳幾次,可能是要上傳10多次。
(2)如果在bintray中找不到add to Jcenter,是因?yàn)槟阕?cè)的是企業(yè)賬號(hào),可以取消重新注冊(cè)為個(gè)人賬號(hào)
最后歡迎使用本項(xiàng)目:compile 'com.apeng:EsayPermissions:1.0.0'? ?