Android向JCenter發(fā)布開源庫方法

前言

Android開發(fā)在很多時候都想很方便的使用別人和自己的開源庫,不希望將已經(jīng)封裝好的模塊在多個項目中進(jìn)行無休止的復(fù)制、粘貼;最好的方式就是將自己封裝好的庫發(fā)布到JCenter中,然后在新項目的APP Module中進(jìn)行compile依賴,實現(xiàn)上傳到JCenter中的方法有很多,本文介紹一種非常簡單的方式進(jìn)行上傳--bintray-release

方法

1.建立封裝庫

上傳到JCenter中一定要有一個庫,所有需要在Android studio中新建一個類型為library的封裝庫


新建封裝庫

2.注冊bintray.com賬號

JCenter其實就是一個maven倉庫,注冊bintray.com賬號其實就是擁有上傳權(quán)限的第一步(因為JCenter庫是由bintray維護(hù)的)

bintray注冊界面

  • 注意:注冊成功后登錄,然后按圖所示操作,保存好生成的key,后面會用到。
保存key

3.在項目中引入bintray-release

3.1.在項目的build.gradle中添加依賴
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'com.novoda:bintray-release:0.4.0' //添加
    }
}
  • 注意:這個是在項目中的build.gradle, 不是APP Module中的build.gradle
3.2.配置需要上傳的 Library Module
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release' //添加

android{  //不變
}

dependencies{ //不變
}
// 添加
publish {
    userOrg = 'rickychan'//bintray.com用戶名
    repoName = 'android'//Repository名(bintray網(wǎng)站新建的Repository名,類型為maven)
    groupId = 'com.ricky'//jcenter上的路徑
    artifactId = 'avanti'//項目名稱
    publishVersion = '1.1.0'//版本號
    desc = 'Custom Android fast develop framework'//描述,不重要
    website = 'https://github.com/AndRickyChan/Avanti'//網(wǎng)站,不重要;可以填寫項目的github地址
}
注意:
  • repoName值必須和bintray中新建的Repositoty名相同,不然上傳過后容易出現(xiàn)404錯誤提示,如果你新建的Repositoty名為"maven",則這個值可以不傳,bintray默認(rèn)這個值為"maven"
  • 新建的Repositoty的類型應(yīng)為maven,協(xié)議應(yīng)為Apache2.0

4.開始上傳

執(zhí)行下面代碼進(jìn)行上傳

 ./gradlew clean build bintrayUpload 
 -PbintrayUser=rickychan
 -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx 
 -PdryRun=false
注意:
  • 執(zhí)行上面代碼是在命令行下,目錄必須在當(dāng)前項目的根目錄下,可以在Adnroid Studio的Terminal中執(zhí)行(windows用戶不需要輸入前面的./)
  • PbintrayUser為bintray注冊設(shè)置的用戶名;PbintrayKey為bintray生成的key

5.提交審核

提示上傳成功后,就可以在 https://bintray.com/你的用戶名/你的Repository名 中看到你上傳的library

上傳后項目截圖

點擊項目進(jìn)入詳情即可提交審核


提交審核
注意:
  • 在我寫文章時候我的項目已經(jīng)審核通過了,所以提交的按鈕消失了,具體位置已在圖中標(biāo)出。
  • 經(jīng)過幾個小時過后,JCenter審核通過,就可以使用上圖標(biāo)出的依賴了。

細(xì)節(jié)介紹

1.在執(zhí)行上傳代碼的時候,有可能出現(xiàn)錯誤,請按照命令行提示的錯誤進(jìn)行修改,然后重新執(zhí)行上傳操作。
2.如果上傳的library Module的build.gradle中存在中文代碼或者注釋,則需要在項目的build.gradle文件中進(jìn)行配置
allprojects {
    repositories {
        jcenter()
    }

    //添加
    tasks.withType(Javadoc) {
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}
3.如果library更新,則需要重新上傳,上傳代碼不變,只需要改變需要上傳的Module中的build.gradle中的配置,更改publishVersion參數(shù)即可,更新庫不需要等待bintray審核,會在自己新建的Repository中生成一個新版本的分支,點擊可查看詳情
倉庫更新

其他

在學(xué)習(xí)將自己的庫上傳到JCenter的時候參考的是hongyang大神的博客,然后根據(jù)提交過程中產(chǎn)生的錯誤進(jìn)行的實踐,對細(xì)節(jié)進(jìn)行了相應(yīng)的補充。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容