轉(zhuǎn)載請注明:http://www.qinglinyi.com/posts/publish-to-jcenter/
第一次發(fā)布項目到jcenter胖翰,雖然網(wǎng)上有很多教程了,但是過程還是比較曲折蚀乔。不過最終還是找到簡單的方式艇搀,使用com.novoda.bintray-release實現(xiàn)發(fā)布腋颠。
認識jcenter
我們經(jīng)常在android studio項目中看到:
allprojects {
repositories {
jcenter()
}
}
那么jcenter到底是什么呢袋狞?
我們可以將jcenter理解為代碼倉庫。如果我們在builde.gradle文件中設置例如:
compile 'com.google.code.gson:gson:2.3.1'
這時凄贩,Android Studio或者說Gradle會自動從jcenter下載 gson的jar包(實際上Maven packages誓军,但是我們主要關心是jar或者aar),這樣我們就可以在項目中使用gson了疲扎。不需要手動下載jar包然后導入到項目中了昵时。
我們在文件夾下面(.gradle/caches/modules-2/files-2.1捷雕,這個路徑我電腦下的)找到這些由gradle下載的文件,像這樣:
不過我們一般不用關心這些壹甥,只要項目能自動導入依賴就好了救巷。
如果你想關心這些文件在哪里也沒關系。
(走偏了句柠,回來浦译。。)
所以溯职,我們就能大致明白了這個jcenter是干什么的精盅。那么來確定一下吧:
詳細信息在這里:https://bintray.com/bintray/jcenter
主要就是說:
JCenter is the place to find and share popular Apache Maven packages for use by Maven, Gradle, Ivy, SBT, etc.
提供Maven, Gradle, Ivy, SBT等查找和分享Apache Maven packages的地方
順便我們了解一下bintray https://bintray.com/howbintrayworks
Bintray, your platform for automated software distribution
當然jcenter只是bintray下的一個maven packages repository
bintray不只支持maven packages 還支持其他類型:
了解完jcenter我們就開始吧!
賬號注冊
- 要把項目發(fā)布到jcenter我們需要先注冊bintray的賬號谜酒,https://bintray.com叹俏,我是通過GitHub賬號注冊的。(這一步基本沒什么問題)
-
然后獲取API key (圖)
API key
API key
API key
記下API key 發(fā)布的時候使用
添加package
其中僻族,name :包名字
例如:
'com.android.tools.build:gradle:1.5.0'
gradle 就是名字粘驰。
配置項目
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.novoda:bintray-release:0.3.4'
}
}
allprojects {
repositories {
jcenter()
}
}
ext {
userOrg = 'qinglinyi'
groupId = 'com.qinglinyi.arg'
description = 'fragment arg'
publishVersion = '1.0.0'
website = 'https://github.com/qinglinyi/FragmentArg'
dryRun = 'false'
}
apply plugin: 'java'
apply plugin: 'com.novoda.bintray-release'
publish {
artifactId = 'arg-api' // library的名字
userOrg = rootProject.userOrg //用戶所在組織
groupId = rootProject.groupId // 包名
publishVersion = rootProject.publishVersion // 版本
description = rootProject.description // 描述
website = rootProject.website
bintrayUser = rootProject.bintrayUser // 賬戶名
bintrayKey = rootProject.bintrayKey // 就是API key
dryRun = rootProject.dryRun
}
我是使用com.novoda:bintray-release來完成的,詳細信息和各個字段的含義可以看這里:
https://github.com/novoda/bintray-release
https://github.com/novoda/bintray-release/wiki/Configuration-of-the-publish-closure
運行發(fā)布
點擊Gradle的命令工具
如果成功會在網(wǎng)站上看到:
證明發(fā)布成功了
這樣我們就能夠使用了述么,但是這個只是在我們自己的倉庫中蝌数,還沒到jcenter。
allprojects {
repositories {
maven {
url 'https://dl.bintray.com/qinglinyi/maven'
}
jcenter()
}
}
這個地址你可以在網(wǎng)站上復制一下或者使用這個地址的中名字改成自己的就可以了碉输。
復制在這里:
添加到jcenter
最后我們將包添加到jcenter中籽前,添加成功時候我們就不需要添加自己的maven地址了。
通過可能需要一些時間敷钾,注冊查看通知。
成功之后肄梨,是這樣的
大功告成W杌摹!
詳細的配置可以看我的Github項目:
https://github.com/qinglinyi/FragmentArg
參考
http://www.reibang.com/p/499a086e3bab
http://www.cnblogs.com/qianxudetianxia/p/4322331.html