AndroidStudio發(fā)布代碼到JCenter

前言

作為一個有了一定開發(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)建組織

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

創(chuàng)建組織.png

填資料,分別是組織ID(必填) 組織名稱(必填) 地區(qū) 網站地址 推特

創(chuàng)建好了,長這樣。你可以看到,同樣有Add New Repository,可以創(chuàng)建代碼庫

組織主頁
  • 從Github導入組織

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

Github創(chuàng)建組織

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


開放授權
開放授權

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


Github導入組織

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


選擇導入的組織
創(chuàng)建代碼庫

這里首先需要再次提醒,如果你的代碼庫不是只有你一個人玩,請在創(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'
    }
}

最新的bintray-release插件版本請看這里

代碼庫所在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用戶名(用戶名如下圖)
倉庫名
組織ID
  • 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
用戶名
APIKey

至此,發(fā)布代碼庫在本地工程部分的準備工作就完成了,攻略完成 2/3


代碼庫發(fā)布

發(fā)布

找到你剛才上傳的代碼庫(有組織去組織里面找,沒組織在個人主頁找),點進去看詳情,有“Add to JCenter”按鈕,點擊進入,然后什么也不用填,直接點擊“Create”還是“Commit”(忘了截圖了。。。),就可以了。

首次發(fā)布,需要等待幾個小時,然后會發(fā)一封郵件告訴你,發(fā)布成功/失敗,失敗的話,會告訴你原因

Add2JCenter
發(fā)布成功

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

發(fā)布失敗

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

引用地址
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編碼錯誤

如果在上傳的時候,遇到這個錯誤

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"
        }
    }
}

本篇內容到此結束,感謝收看~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容