發(fā)布自己的Android庫到JCenter

原始方式看這篇教你一步步發(fā)布一個開源庫到 JCenter

本文總結使用庫bintray-release發(fā)布庫到JCenter,簡單方便

一. bintary前期準備

1.注冊jcenter賬號

2.創(chuàng)建Repository(倉庫)

注冊成功之后創(chuàng)建Repository,作為存放開源庫的倉庫,一般選擇為公共倉庫(public),倉庫類型為maven,倉庫名稱在后面上傳時需要用到。


3.獲取 API Key

Edit profile -> API Key 獲取上傳的秘鑰key,后面上傳項目的時候需要用到


API Key.png

二. 普通項目配置

1.準備好待上傳的庫項目,utils即為我們待上傳庫

模擬待上傳的工具庫.png

2.配置引入 bintray-release插件

  • 項目根目錄build.gradle配置,加入bintray-release插件
buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'//默認gradle插件
        //加入bintray-release插件
        classpath 'com.novoda:bintray-release:0.9.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}
  • 開源庫(utils庫)目錄build.gradle配置,每個配置描述都已經給出
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加 bintray-release 配置

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"

    defaultConfig {
          //原有配置 ,保持不變
    }

    buildTypes {
        //原有配置 ,保持不變
    }
}

dependencies {
     //原有配置 ,保持不變
}

//添加
publish {
    userOrg = 'beibei1024'//bintray.com用戶名
    repoName = 'base'   // bintray上倉庫的名字
    groupId = 'com.beibei.base'//jcenter上的路徑
    artifactId = 'baseutils'//項目名稱
    publishVersion = '0.0.1'//版本號
    desc = 'utils lib'// 描述
    website = 'https://github.com/beibei-xiangwang/utils'//一般填github 項目地址,一定是要有效的地址
}

完成這兩個步驟,就可以準備上傳開源庫到jcenter了

三. 上傳開源庫

使用上傳命令上傳開源庫,再terminal中執(zhí)行
gradle clean build bintrayUpload -PbintrayUser=beibei1024 -PbintrayKey=Xxxxxxxxx -PdryRun=false

gradlew clean build bintrayUpload //根命令
-PbintrayUser=beibei1024 //jcenter 賬號用戶名
-PbintrayKey=Xxxxxxxxx  //文章開頭獲取的API Key
-PdryRun=false //配置參數(shù),true 執(zhí)行所以細節(jié)但是不上傳開源庫,false上傳開源庫

Build successful 后即可在bintary上查看到上傳的開源庫


四. Add to Jcenter提交審核開源庫

經過上面的步驟我們還不能引用,要想引用上傳的開源庫還得提交人工審核,人工審核通過會收到站內message,并且開源庫中的Add to Jcenter 按鈕也會消失。等待審核通過后就可以引用了compile 'com.beibei.base:baseutils:0.0.1'

五. 版本更新

開源庫迭代,只需要修改開源庫目錄build.gradle配置中的版本號,其他配置保持不變,再次執(zhí)行上傳開源庫命令就可以達到版本更新的目的。

publish {
    userOrg = 'beibei1024'
    repoName = 'base' 
    groupId = 'com.beibei.base'
    artifactId = 'baseutils'
    publishVersion = '0.0.2'//修改版本號
    desc = 'utils lib'
    website = 'https://github.com/beibei-xiangwang/utils'
}

參考開源庫上傳 jcenter

補充. JCenter() 與 mavenCenter() 的區(qū)別

兩種Maven倉庫
JCenter是一個由 bintray.com維護的Maven倉庫。
Maven Central 則是由sonatype.org維護的Maven倉庫。

  • JCenter() 與 mavenCenter()在完全不同的服務器上維護,由不同的人提供內容,兩者之間毫無關系。在jcenter上有的可能 Maven Central 上沒有,反之亦然。
  • Gradle支持從JCenter與mavenCenter上獲取構件。事實上兩個倉庫都具有相同的使命:提供Java或者Android library服務。上傳到哪個(或者都上傳)取決于開發(fā)者。
  • 如果我們使用的library的作者是把該library放在自己的服務器上,我們還可以自己定義特有的Maven倉庫服務器。
allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
        maven {url "https://jitpack.io"}

        //引用本地倉庫
        mavenLocal()
    }
}
  • Android Studio早期版本使用的是mavenCentral(),后來切換到jcenter()了。
    這是因為jcenter在性能和占存儲大小方面比mavenCentral更優(yōu).另外還有google()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容