20171222更新
目前有更加方便的方法發(fā)布到 JCenter棚亩,詳見bintray-release
前言
隨著Android Studio不斷完善识埋,越來越多的Android項(xiàng)目開始遷移到AS平臺染乌。AS的其中一個強(qiáng)大之處在于使用Gradle依賴,比如我們想要依賴Universal-Image-Loader,只需要在build.gradle中添加如下代碼即可
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
Gradle就會自動幫我們添加依賴味悄。今天我們就來實(shí)戰(zhàn)把library發(fā)布到j(luò)Center倉庫。
實(shí)戰(zhàn)
在bintray上創(chuàng)建package(可能需要翻墻)
- 在bintray上注冊一個賬號
- 在
Owned Repositories
標(biāo)簽下點(diǎn)擊Add New Repository
塌鸯,名字自己起侍瑟,Type
選擇Maven
- 打開剛剛創(chuàng)建的倉庫,點(diǎn)擊
Add New Package
,輸入相關(guān)信息并點(diǎn)擊Create Package
配置library
這里我們默認(rèn)大家已經(jīng)擁有了一個Android library涨颜,沒有的話趕快去創(chuàng)建吧费韭。
添加bintray插件依賴
打開我們Android library所在的project,編輯根目錄下的build.gradle文件庭瑰,在buildscript標(biāo)簽下的dependencies標(biāo)簽中添加bintray插件依賴
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
配置bintray賬號
為了安全考慮星持,我們將bintray賬號信息放在local.properties文件中
bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY
user是我們bintray賬戶的用戶名,apikey在bintray網(wǎng)站上Edit Profile
頁面可以找到弹灭。
配置library信息
編輯library下的build.gradle文件督暂,在apply plugin: 'com.android.library'
下面添加以下代碼(這里以LrcView為例)
ext {
bintrayRepo = 'maven'
bintrayName = 'lrcview'
publishedGroupId = 'me.wcy'
artifact = 'lrcview'
libraryName = 'lrcview'
libraryVersion = rootProject.ext.versionName
libraryDescription = 'A lyric view on Android'
siteUrl = 'https://github.com/wangchenyan/LrcView'
gitUrl = 'https://github.com/wangchenyan/LrcView.git'
developerId = 'wangchenyan'
developerName = 'wcy'
developerEmail = '919247701@qq.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
bintrayRepo使用默認(rèn)的,即maven鲤屡,bintrayName修改成你上面創(chuàng)建的package name损痰。其余的項(xiàng)也修改成和你library信息相匹配的值。
注意:我們上傳到bintray的library會以本地library的Module name命名酒来,因此為了減少不必要的麻煩卢未,我們應(yīng)該使本地library的Module name和bintray上的package name保持一致。
添加構(gòu)建和上傳腳本
再次編輯library下的build.gradle文件堰汉,在文件的最后追加兩行如下的代碼來應(yīng)用兩個腳本辽社,用于構(gòu)建library文件和上傳文件到bintray(為了方便,我直接使用了github上連接到相關(guān)文件的鏈接):
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
把library上傳到你的bintray空間
點(diǎn)擊Android Studio的終端選項(xiàng)卡翘鸭。
第一步是檢查代碼的正確性滴铅,以及編譯library文件(aar,pom等等)就乓,輸入下面的命令
gradlew install
如果沒有什么問題汉匙,會顯示BUILD SUCCESSFUL
現(xiàn)在我們已經(jīng)成功一半了。下一步是上傳編譯的文件到bintray(可能需要翻墻)生蚁,使用如下的命令
gradlew bintrayUpload
如果上傳成功噩翠,同樣會顯示BUILD SUCCESSFUL
至此,我們已經(jīng)成功的將library上傳到我們自己的Maven倉庫了邦投,當(dāng)然伤锚,還是“自己”的,別人還不能用志衣。
同步bintray用戶倉庫到j(luò)center
打開我們的package詳情頁屯援,點(diǎn)擊Add to JCenter
,然后什么也不做直接點(diǎn)擊Send念脯。
現(xiàn)在我們所能做的就是等待bintray團(tuán)隊(duì)審核我們的請求狞洋,大概2-3個小時。一旦同步的請求審核通過和二,你會收到一封確認(rèn)此更改的郵件徘铝。
大功告成!從此之后,任何開發(fā)者都可以使用jcenter() repository 外加一行g(shù)radle腳本來使用我們的library了
compile 'me.wcy:lrcview:1.0.0'
參考
How to distribute your own Android library through jCenter and Maven Central from Android Studio