如何將私有l(wèi)ib庫發(fā)布到j(luò)center上?

圖片發(fā)自簡書App

眾所周知,將lib發(fā)布到j(luò)center的途徑五花八門,八仙過海各顯神通,各有各的插件,自己喜歡就好。我也在眾多的方法中迷失過,有復雜也有簡單,遇到的問題也奇奇怪怪,人都有選擇綜合征,一旦選擇多了就無從下手。還好我找到了一種相對簡單的上傳方法。
首先你需要在https://bintray.com/上注冊一個賬號,這是必須的一步,后面在上傳的時候會用到賬號的一些信息。有了賬號之后我們就可以開始在Android Studio中對build.gradle文件進行配置,以實現(xiàn)將我們的lib庫上傳到j(luò)center中。下面是build.gradle文件的配置步驟。

1.在項目根目錄下面的build.gradle中添加插件的依賴路徑,以及通過ext配置私有l(wèi)ib信息,包括庫的包名,庫名,版本號,庫的源代碼地址等等...

插件路徑依賴

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

庫信息的描述

def libVersion = "1.0.8"
ext {    
    userOrg = "iknow"          //bintray.com用戶名    
    groupId = "com.github.iknow4"   //jcenter上的路徑    
    publishVersion = libVersion //版本號    
    description = "It is a android utils Library"http://類庫的描述    
    website = "https://github.com/iknow4/Android-utils"http://該庫在github上對應(yīng)的鏈接    
    uploadName = "AndroidUtils" //上傳在bintray的文件夾    
    licences = ["Apache-2.0"]
}

完整的code如下:

buildscript {    
    repositories {        
       jcenter()    
 }   
dependencies {        
      classpath 'com.android.tools.build:gradle:2.0.0'        
      classpath 'com.novoda:bintray-release:0.3.4'    
  }
}
def libVersion = "1.0.8"
ext {    userOrg = "iknow"          //bintray.com用戶名    
      groupId = "com.github.iknow4"   //jcenter上的路徑    
      publishVersion = libVersion //版本號    
      description = "It is a android utils Library"http://類庫的描述    
      website = "https://github.com/iknow4/Android-utils"http://該庫在github上對應(yīng)的鏈接    
      uploadName = "AndroidUtils" //上傳在bintray的文件夾    
      licences = ["Apache-2.0"]
}
allprojects {    
    repositories {       
         jcenter()    
    }
}

task clean(type: Delete) {    
    delete rootProject.buildDir
}
2.在主工程目錄下面的build.gradle文件中,將插件'com.novoda.bintray-release',apply到build.gradle中。

添加插件依賴:

apply plugin: 'com.novoda.bintray-release' //添加插件依賴

增加發(fā)布模塊:

//添加發(fā)布模塊
publish {    
        artifactId = 'android-utils-sdk'//模塊名稱    
        userOrg = rootProject.userOrg    
        groupId =   rootProject.groupId    
        uploadName = rootProject.uploadName //模塊上傳后所在的文件夾名稱    
        publishVersion = rootProject.publishVersion//模塊版本號    
        desc = rootProject.description//模塊的描述    
        website = rootProject.website //模塊的網(wǎng)站    
        licences = rootProject.licences //模塊的licences
}

完整的代碼如下:

apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release' //添加插件依賴
android {    
  compileSdkVersion 23    
  buildToolsVersion "24.0.0"    

  defaultConfig {        
      minSdkVersion 14        
      targetSdkVersion 23        
      versionCode 1        
      versionName "1.0"    
  }    
  buildTypes {        
        release {            
              minifyEnabled false            
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        
      }    
 }    
lintOptions {        
        abortOnError false   
   }
}
dependencies {    
      compile fileTree(dir: 'libs', include: ['*.jar'])
}
//添加發(fā)布模塊
publish {    
        artifactId = 'android-utils-sdk'//模塊名稱    
        userOrg = rootProject.userOrg    
        groupId =   rootProject.groupId    
        uploadName = rootProject.uploadName //模塊上傳后所在的文件夾名稱    
        publishVersion = rootProject.publishVersion//模塊版本號    
        desc = rootProject.description//模塊的描述    
        website = rootProject.website //模塊的網(wǎng)站    
        licences = rootProject.licences //模塊的licences
}
3.在終端執(zhí)行./gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=xxx -PdryRun=false命令

其中PbintrayUser是你在https://bintray.com/注冊的用戶名,PbintrayKey是賬戶設(shè)置頁面下的key。
如果命令執(zhí)行成功,你的庫就上傳到bintray 網(wǎng)站上了,但是還無法被依賴使用,需要將庫發(fā)布到j(luò)center 上,發(fā)布有時候需要等待一天時間,如果成功,你會收到發(fā)布成功的郵件。這時候,恭喜你,你和其他人就可以在Android Studio中依賴使用了,是不是覺得很不錯。
以上是我選擇發(fā)布庫的一種方式,自己覺得還是蠻簡單的,從配置到最后發(fā)布命令,只需要三步,簡稱:發(fā)布三部曲。需要注意的是,發(fā)布是不能將相同版本的庫覆蓋的,所以每次發(fā)布的版本號要求不一樣。

可以參考我github上的一個項目Android-utils
該項目是一個開發(fā)工具庫,如果想使用可以直接在build.gradle中進行依賴

dependencies {    
      compile 'com.github.iknow4:android-utils-sdk:1.0.8'
}

THE END
國際慣例附上微信,如有問題歡迎交流:


我的微信
我的微信
最后編輯于
?著作權(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)容