1. 程式人生 > >Android打包aar檔案上傳到JCenter倉庫指南

Android打包aar檔案上傳到JCenter倉庫指南

目錄

說明

操作步驟

總結:

說明

為什麼要將包上傳到JCenter呢? 

我們日常開發中,對於一些公共的元件總是打成jar包或aar包來提高利用性,但是如果多個專案中要用到這些jar包就需要將jar包copy到每一個專案中,非常麻煩。

Android Studio中有很好的gradle依賴管理工具,看到我們在使用一些第三方庫的時候總是在build.gradle中新增一句依賴程式碼,build一會兒,很快就可以拿來用了,真的是好方便,那我們自己怎樣將封裝的jar包或aar包上傳到JCenter倉庫呢 ?

操作步驟

1、註冊JFrog Bintray

  1. 註冊時分為企業使用者和個人使用者,儘量選擇個人使用者註冊,如果你選擇了start your free trial註冊後,上面會顯示一個類似下面這種標識,你說煩不煩。
  2. 註冊的時候需要填寫郵箱,國內的郵箱是不行的,需要申請一個國際郵箱,比如谷歌郵箱。看到網上也有人說可以用github賬號進行註冊,這個我沒有嘗試,你可以試試。
  3. 填寫完必要的資訊就可以完成註冊,這個時候他會向你的郵箱傳送一條啟用郵件,啟用一下就可以了。

2、建立遠端倉庫

完成以上步驟後點擊Create按鈕就建立好了自己的倉庫,接下來新建一個包名,也就是專案名。

執行完以上的操作步驟就完成了倉庫的建立,接下來就可以建立自己的專案然後上傳了。

3、專案本地建立

首先在Project下的build.grdle中加入以下依賴:

dependencies {
    classpath "guru.stefma.bintrayrelease:bintrayrelease:1.0.0"
}

看到也有的人說加入另一個依賴:

dependencies {
    classpath 'com.novoda:bintray-release:0.8.0'
}

但是我在Android Studio3.2的distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip該版本下是一直失敗的,一直報這個錯誤:Cause: com.novoda.gradle.release.AndroidLibrary$LibraryUsage.getDependency  , 網上有說把版本從4.6降到4.4,但是降完後報錯最低4.6,然後換了一種方法,也就是上面的第一種。

接下來在Module下的build.gradle中加入以下程式碼配置:

apply plugin: "guru.stefma.bintrayrelease"

version = "0.0.1"
group = "專案的包名"
publish {
    userOrg = 'bintray註冊的使用者名稱'                   
    repoName = '遠端倉庫名字,不指明,預設是上傳到maven'                             
    artifactId = 'compile引用時的第2部分專案名,也是遠端倉庫的包名'            
    desc = '描述,隨便寫'   
    website = '引用github主頁'
}

tasks.withType(Javadoc) {//防止編碼問題
    options.addStringOption('Xdoclint:none', '-quiet')
    options.addStringOption('encoding', 'UTF-8')
    options.addStringOption('charSet', 'UTF-8')
}

4、打包上傳

最後一步,在Android studio的Terminal 中輸入命令列,賬號是網站註冊時的賬號,key是賬號對應的祕鑰。

gradlew clean build bintrayUpload -PbintrayUser=賬號 -PbintrayKey=key -PdryRun=false

key獲取方式往下看:

這樣就可以獲取到你的API Key,放到你的命令中對號入座就行。

命令大概會執行1分多種,執行完後會提示“BUILD SUCCESSFUL”。這個時候就已經上傳到你的倉庫了。

5、提交稽核

點選進去看到有這些資訊後說明已經上傳成功了,你可以提交稽核了。

但是在此還有一個坑,你可能會發現總是提交失敗,提示類似以下錯誤:

android Failed to send a message: The version control 0.0.1 returns 404

進入以下頁面提交稽核。

點擊發送就可以提交稽核了。

第一次會比較慢一些,大約一天左右就可以稽核通過,後面就會快很多了。

稽核成功後開啟專案所在package就可以看到引用地址了,直接在你的專案中像引用Volley似的直接引用依賴就可以了。

總結:

操作的時候還是遇到了一些坑,也耗費了不少時間去解決,主要是有以下3個坑:

  1. 註冊的時候用車內的郵箱一直提示失敗,後來才知道必須用國際郵箱,後來申請了一個谷歌郵箱就可以了
  2. 註冊Bintray的時候一定不要選擇“start your free trial”,要不然總是提示你還有幾天就到期這樣的字樣,我當時看到這樣的字樣直接又申請了一個新的賬號。
  3. 在Project下的build.gradle中新增classpath時剛開始用這個庫:“classpath 'com.novoda:bintray-release:0.8.0'”,然後就一直報錯,花費很長時間找了很多解決辦法都不太奏效,後來改用另一個庫“classpath "guru.stefma.bintrayrelease:bintrayrelease:1.0.0"”,就不再會報錯了,感覺是因為對AS3.2最新build工具有不太相容的地方。
  4. 本地提交到Bintray後點擊“Add to JCenter”時一直提示:“android Failed to send a message: The version control 0.0.1 returns 404”,這個修改VCS後就可以正常提交了。

這些填坑的心路歷程在此記錄一下,希望看到這些警示的Android開發者避免再掉坑!