Android向JCenter發布開源庫方法

前言

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

方法

1.建立封裝庫

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


新建封裝庫

2.注冊bintray.com賬號

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

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網站新建的Repository名,類型為maven)
    groupId = 'com.ricky'//jcenter上的路徑
    artifactId = 'avanti'//項目名稱
    publishVersion = '1.1.0'//版本號
    desc = 'Custom Android fast develop framework'//描述,不重要
    website = 'https://github.com/AndRickyChan/Avanti'//網站,不重要;可以填寫項目的github地址
}
注意:
  • repoName值必須和bintray中新建的Repositoty名相同,不然上傳過后容易出現404錯誤提示,如果你新建的Repositoty名為"maven",則這個值可以不傳,bintray默認這個值為"maven"
  • 新建的Repositoty的類型應為maven,協議應為Apache2.0

4.開始上傳

執行下面代碼進行上傳

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

5.提交審核

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

上傳后項目截圖

點擊項目進入詳情即可提交審核


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

細節介紹

1.在執行上傳代碼的時候,有可能出現錯誤,請按照命令行提示的錯誤進行修改,然后重新執行上傳操作。
2.如果上傳的library Module的build.gradle中存在中文代碼或者注釋,則需要在項目的build.gradle文件中進行配置
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參數即可,更新庫不需要等待bintray審核,會在自己新建的Repository中生成一個新版本的分支,點擊可查看詳情
倉庫更新

其他

在學習將自己的庫上傳到JCenter的時候參考的是hongyang大神的博客,然后根據提交過程中產生的錯誤進行的實踐,對細節進行了相應的補充。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容