android開源庫釋出到jcenter圖文詳解與填坑
相信很多人都用過開源專案,特別是android studio普及以後,使用開源庫更方便簡單。而如何上傳開源庫到jcenter供大家方便使用,雖然網上也有教程,但還是遇坑了,最後總結一下,希望可以幫助大家。
AndroidStudio是從Maven Repository 伺服器下載類庫的。基本上有jcenter和Maven Central這兩個伺服器用於下載Android的類庫。
在程式碼裡配置如下: jcenter倉庫
allprojects {
repositories {
jcenter()
}
}
Maven Central倉庫:
allprojects {
repositories {
mavenCentral()
}
}
首先我們看看寫的gradle程式碼的含義:
compile 'com.mrzk.loadingview:circleloadinglibrary:1.1.0'
其組成是這樣的:
GROUP_ID:ARTIFACT_ID:VERSION
GROUP_ID指的是com.mrzk.loadingview,類似於包名;ARTIFACT_ID指的是circleloadinglibrary,類似於類庫的名稱;VERSION
1、在bintray.com上面註冊一個賬號,然後登入進去。
2、註冊登入完成之後,建立倉庫
3、建立倉庫
4、Add New Package
5、選擇要上傳的AndroidStudio專案
6、設定bintray的username和API Key來進行bintray的加密認證
將這些資訊寫在local.properties檔案裡。寫在local.properties的原因在於,bintray的username和APIKey是敏感的私人資訊,應該保管好而不是把它上傳到github上,正好把local.properties檔案寫在.gitignore
如下:
bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY
username就是你bintray賬號的使用者名稱
apikey在這裡查詢:
7、配置庫module的build.gradle檔案
ext {
bintrayRepo = 'maven'
bintrayName = 'circleloadinglibrary'
publishedGroupId = 'com.mrzk.loadingview'
libraryName = 'circleloadinglibrary'
artifact = 'circleloadinglibrary'
libraryDescription = 'a circle loading for android'
siteUrl = 'https://github.com/zhangke3016/CircleLoading'
gitUrl = 'https://github.com/zhangke3016/CircleLoading.git'
libraryVersion = '1.1.0'
developerId = 'mrzk'
developerName = 'zhangke'
developerEmail = '609975727@qq.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
我們引用該類庫的程式碼就是:
compile 'com.mrzk.loadingview:circleloadinglibrary:1.1.0'
8、配置bintray upload的相關程式碼
build.gradle檔案的最末行新增下面兩行程式碼:
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
9、整個project的build.gradle裡面新增最後三行程式碼
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
10、在AndroidStudio提供的Terminal視窗執行如下命令
gradlew install
順利的話之後會出現:
BUILD SUCCESSFUL
接下來需要把build成功的檔案upload到bintray上:
gradlew bintrayUpload
一切順利之後也會出現:
BUILD SUCCESSFUL
注意,這裡有坑。我在build過程中,出現javadoc生成失敗的問題,在生成javadoc時有檢查文件的正確性,但是這裡的檢查有點過於嚴格了,像
這種的註釋都會導致生成失敗,而且由於使用的是Windows系統,預設編碼是GBK,所以在上傳編譯時報了編碼的錯誤問題。
解決方法:
在庫專案的build.gradle裡新增:
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
11、同步library檔案到建立的bintray倉庫
點選右下角的Add to JCenter按鈕
跳到一個Request to include the package ‘test’ in ‘jcenter’的頁面,什麼都不用做,直接點選Send按鈕就可以了。
大概1個小時左右,jcenter稽核通過就會在bintray上收到同意訊息提醒。 恭喜你,你的類庫上傳到jcenter成功了!
至此大家用我寫的類庫circleloading,僅僅只需要新增一行程式碼:
compile 'com.mrzk.loadingview:circleloadinglibrary:1.1.0'
最後,
CircleLoading介紹就在我上一篇部落格中,開源地址:CircleLoading