前言
作為一個有了一定開發(fā)經驗的程序員,你一定或多或少封裝了一些庫,用以應付一些日常的通用功能,如果每次都拷貝這些代碼,或者從Git上clone下來,未免過于麻煩,且不優(yōu)雅。如果能夠像我們平時使用的一些開源庫一樣,直接api/implementation 'xxx:xxx:xxx',那就方便了,比如像這樣
implementation 'com.android.support:appcompat-v7:28.0.0'
這種形式的庫引入,你一定不陌生,本篇文章,將說明使用bintray-release(順便說一下,有其他的插件也可以發(fā)布,不過這個應該是最方便的了)來發(fā)布你的代碼到JCenter
其實關于這個內容的帖子有很多,一搜一大把,不過由于AS版本、Gradle版本、bintray-release版本的不同,以及bintray網站自己的更新,導致帖子里面的流程和需要填寫的參數等,都無法完美匹配現在的要求。
本篇文章,將結合網上的資料和我自己的探索,給出一個現階段可用的發(fā)布流程
本篇文章寫于2019/08/20,如果你看到它時,已經過了很久,請找更加新的流程攻略做參考
內容提要
本篇文章是使用bintray-release,在AndroidStudio里上傳自己代碼到JCenter的流程攻略
注冊bintray賬號
到bintray注冊一個賬號,請注意,這里迎來第一個坑點,不要看到那一坨顯眼的原諒色按鈕,就著急著點進去,我們要發(fā)布的是開源庫,所以請點擊For an Open Source Account

下一步沒啥好說,自己填該填的資料注冊,你也可以通過Github/Google/Twitter賬號登陸(程序員沒哪個沒有Github賬號的吧。。。),我是使用Github直接登陸的
你的主頁
如果你看過其他攻略,這時候應該要開始教你“夸夸夸”的建組織建倉庫了,這里我們先不急,我們先認識一下自己的主頁,長這樣

如果一進來不是這樣的,在一號區(qū)域(這個是一定有的)點擊View Profile就能進來了
一號區(qū)域
進入主頁、編輯賬號(設置)、管理你的組織都在這里
二號區(qū)域
倉庫區(qū),你的代碼,就可以上傳到你在這里創(chuàng)建的倉庫。這里需要注意
- 1.這里不是唯一可以存放代碼的地方
- 2.我看到有帖子說,如果創(chuàng)建倉庫時,倉庫類型選擇Maven,倉庫名稱也必須叫做maven(你可以看到我為了測試,也創(chuàng)建了一個這樣的倉庫),但是實際上不需要,你愛叫什么名字,就叫什么名字(當然這個會不會是因為那位博主在當時試的時候,確實就是那樣的,也未可知)
三號區(qū)域
組織區(qū),你可以在這里創(chuàng)建你的組織,然后進入創(chuàng)建好的組織里面,可以在里面去創(chuàng)建代碼庫(這就是為什么前面說二號區(qū)域不是唯一可以存放代碼的地方)
創(chuàng)建代碼庫
創(chuàng)建組織
如果你的庫需要多人協(xié)作完成,希望其他人也能進行代碼的發(fā)布,那么你需要在一個組織下去創(chuàng)建倉庫,如果你是一個人玩,那不用看這段
點擊下圖這個按鈕,開始創(chuàng)建組織

-
創(chuàng)建組織
直接創(chuàng)建一個新組織,選這個

填資料,分別是
組織ID(必填) 組織名稱(必填) 地區(qū) 網站地址 推特
創(chuàng)建好了,長這樣。你可以看到,同樣有Add New Repository,可以創(chuàng)建代碼庫

-
從Github導入組織
如果想從Github導入組織,你必須先在你的Github創(chuàng)建組織,這里也大致放一下流程圖

按照上圖進入創(chuàng)建,然后按照后面的流程指導走就行了,很簡單。創(chuàng)建完成之后,需要開放該組織的授權


搞定之后,回到bintray的組織創(chuàng)建頁面,點擊下圖的按鈕

然后選擇已有并已授權的組織,后面的步驟相信大家都能輕易完成,不贅述

創(chuàng)建代碼庫
這里首先需要再次提醒,如果你的代碼庫不是只有你一個人玩,請在創(chuàng)建/導入好的組織里面創(chuàng)建代碼庫,這樣你才能邀請小伙伴來一起玩耍
同樣的,先展示入口

填寫代碼庫的具體信息,詳情如圖

點擊Create,就完成創(chuàng)建了
至此,發(fā)布代碼庫在bintray部分的準備工作就完成了,攻略完成 1/3
備注:bintray打開會比較慢,如果能科學上網,應該會好很多
工程配置
工程Gradle文件配置
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0-alpha02'
classpath 'com.novoda:bintray-release:0.9.1'
}
}
代碼庫所在module的Gradle文件配置
apply plugin: 'com.novoda.bintray-release'
//推送到Bintray配置
publish {
repoName = 'CodeRep'
userOrg = "orgnamelll"
groupId = "com.bingor"
artifactId = 'hahalib2'
publishVersion = "1.0.0" //版本號
desc = "a simple utils tool" //描述,選填
website = "https://github.com/x78wteam/X78WRouter/tree/master/TestApp"
}
這里有些地方是需要注意的
- 1.repoName就是你創(chuàng)建倉庫的時候填的那個倉庫名
- 2.userOrg:如果你在組織里面去創(chuàng)建倉庫,那么這里需要填寫組織ID(ID如下圖);如果不在組織內,填你的bintray用戶名(用戶名如下圖)


- 3.最終的訪問路徑,是
groupId : artifactId : publishVersion,所以你應該懂它們的各自含義了 - 4.關于artifactId,有帖子說必須和module名稱一致,我特意測試了一下,不一樣也是可以的
- 5.website這里,需要填寫你這個庫對應工程的頁面地址。比如像我這里,我的Git項目下,有多個工程(這個TestApp是其中一個),那我填寫的,就是TestApp工程的頁面地址,而非整個Git項目的主頁地址。我試過填寫整個Git項目的主頁地址,這樣的話,后面“Add to JCenter”就會都發(fā)郵件告訴你請?zhí)顚懹行У腣CS地址(please provide a valid balabala...具體不記得了)
上傳代碼到bintray
在你的AS下方標簽中,找到Terminal,輸入下方指令,用戶名和API密鑰分別如下圖
gradlew clean build bintrayUpload -PbintrayUser=你的用戶名 -PbintrayKey=你的Api密匙 -PdryRun=false


至此,發(fā)布代碼庫在本地工程部分的準備工作就完成了,攻略完成 2/3
代碼庫發(fā)布
發(fā)布
找到你剛才上傳的代碼庫(有組織去組織里面找,沒組織在個人主頁找),點進去看詳情,有“Add to JCenter”按鈕,點擊進入,然后什么也不用填,直接點擊“Create”還是“Commit”(忘了截圖了。。。),就可以了。
首次發(fā)布,需要等待幾個小時,然后會發(fā)一封郵件告訴你,發(fā)布成功/失敗,失敗的話,會告訴你原因


附上之前VCS地址填錯時候,收到的郵件內容

審核通過后,就可以引用這個庫了,在代碼庫詳情頁可以看見引用地址,

implementation 'com.bingor:hahalib2:1.0.2'
更新
代碼庫總會需要上新版本,怎么更新呢?很簡單,之前的配置里面,改動版本號,重新上傳即可
publish {
...
publishVersion = "1.0.2" //改動這里即可
...
}
然后在Terminal再執(zhí)行一次
gradlew clean build bintrayUpload -PbintrayUser=你的用戶名 -PbintrayKey=你的Api密匙 -PdryRun=false
至此,發(fā)布代碼庫到JCenter完成,祝你也能順利成功~
遇到的坑
GBK編碼錯誤
如果在上傳的時候,遇到這個錯誤

打開工程的build.gradle,輸入這個
allprojects {
...
tasks.withType(JavaCompile) { //設置全局編碼
options.encoding = "UTF-8"
}
tasks.withType(Javadoc) { //設置文檔編碼
options {
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
本篇內容到此結束,感謝收看~~