JitPack、jCenter是我們常用的發(fā)布Android開源庫的網(wǎng)站父阻,發(fā)布成功后就可以在Android Studio中通過Gradle方便的引用到項目中了愈涩,相比Eclipse時代要方便的多,對于使用者確實簡單了加矛,但對于發(fā)布者來說可能還略有坎坷履婉,這里記錄下發(fā)布的過程,以及遇到的坑斟览。
發(fā)布到JitPack
一谐鼎、
準備好項目以及要發(fā)布的開源庫,并先將其上傳到github趣惠。
有一點需要注意,上傳到JitPack的開源庫默認使用項目的名稱身害,而不是要發(fā)布的開源庫的名稱味悄,所以盡量給項目起一個比較優(yōu)雅的名字(這里我們使用同名)。
二塌鸯、
這里我們要用到一個的插件android-maven-gradle-plugin
1侍瑟、、在項目的build.gradle添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
,如下圖:
2涨颜、在要上傳的library的build.gralde文件添加如下代碼:
// JitPack Maven
apply plugin: 'com.github.dcendents.android-maven'
// Your Group
group='com.github.username'
其中username需要替換為你在github上的用戶名
如下圖所示:
記得將修改后的代碼提交到github哦费韭。
三、
打開項目的github主頁庭瑰,創(chuàng)建一個Release或Tag星持,可按如下步驟:
1、
2弹灭、
3督暂、
4、
四穷吮、
1逻翁、將項目的倉庫提交到JitPack:https://jitpack.io/
2、版本提交完成后捡鱼,JitPack會自動生成引用該library的配置信息:
最后就可以愉快的在項目中使用了八回。
發(fā)布到j(luò)Center
一、
準備好要發(fā)布的library:
二驾诈、
1缠诅、jCenter屬于bintray旗下的一個倉庫,所以先要注冊賬號哦翘鸭,https://bintray.com
2滴铅、按照如下步驟得到API Key,在上傳library的時候需要用到就乓。
3汉匙、創(chuàng)建一個名字為maven的Repository
4、在maven倉庫中創(chuàng)建一個package生蚁,注意package的名字和要發(fā)布的library的名字相同
三噩翠、
關(guān)于上傳可以使用gradle-bintray-plugin插件,但是略復(fù)雜邦投,所以我們采用bintray-release
1伤锚、在項目的build.gradle添加bintray-release的classpath:classpath 'com.novoda:bintray-release:0.3.4'
,如下圖:
2志衣、在要上傳的library的build.gralde文件添加如下代碼:
apply plugin: 'com.android.library'
//新添加
apply plugin: 'com.novoda.bintray-release'
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
minSdkVersion 10
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
compile 'com.squareup.okhttp3:okhttp:3.5.0'
}
//新添加
publish {
userOrg = 'othershe' //在https://bintray.com上注冊的用戶名
groupId = 'com.othershe' //jCenter上的路徑
artifactId = 'dutil' //要上傳的library名稱(和二屯援、4中的package相同)
publishVersion = '1.0.0' //library的版本號
desc = 'A download library,that is based on okhttp' //library的簡單描述
website = 'https://github.com/Othershe/DUtil' //library的開源地址念脯,例如在github上的地址
}
到這里必須的代碼配置就完了狞洋,主要的注釋都有了,按照上邊的編寫即可绿店。
四吉懊、
1庐橙、可以在AndroidStudio的Terminal中執(zhí)行命令:gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
其中PbintrayUser代表注冊的用戶名,PbintrayKey就是上邊得到的API Key借嗽,PdryRun是一個配置參數(shù)态鳖,當(dāng)為true的時候,會運行所有的環(huán)節(jié)恶导,但是不會上傳浆竭,如下圖:
2、不出意外的話等待2到3分鐘即可上傳成功甲锡。但是呢這一步往往有許多的坑呀兆蕉,這里簡單的記錄下:
-
坑1:
這個好處理,主要是因為lint檢查時報錯缤沦,因此中斷了整個編譯過程虎韵,在要上傳的library的build.gralde文件的android標(biāo)簽里添加如下代碼即可。
android {
lintOptions {
abortOnError false
}
}
-
坑2:
網(wǎng)上大部分辦法都說在項目的build.gradle文件的allprojects 標(biāo)簽里添加如下代碼:
allprojects {
tasks.withType(Javadoc) {
options {
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
之前上傳另外一個項目確實可行缸废,但這次確無效了包蓝,最后找到了如下方案,在項目的build.gradle文件的allprojects 標(biāo)簽里添加如下代碼:
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
解決了遇到的問題企量,再執(zhí)行上傳命令测萎,終于成功了:
五、
上傳成功后就可以在maven倉庫中看到我們的library:
點進去則可以看到詳情:
此時我們還不能在項目中引用該庫届巩,要將其添加到j(luò)Center硅瞧,點擊上圖右下角的按鈕:
填寫一些對library的描述,然后發(fā)送恕汇。等待數(shù)小時審核通過后會郵件通知你的腕唧,之后就可以在項目中引用了:
到這里兩種發(fā)布方式就介紹完了,布到j(luò)Center的步驟雖然也不算復(fù)雜瘾英,但很少能一次發(fā)布成功枣接,總會被一些問題折騰半天。相比之下發(fā)布到JitPack要簡單的多缺谴,最重要的是省時省力但惶,沒有那么多的問題困擾,真是給力呀湿蛔!如果你也有發(fā)布開源庫的需求膀曾,選擇哪種方式相信你也有答案了。