bintary
前言
相信看到我這篇文章的人已經(jīng)踩了不少坑了娩井。新版bintray改版后芽隆,按照之前網(wǎng)上的教程出現(xiàn)了很多迷茫青自。很對(duì)東西對(duì)應(yīng)不上。接下來(lái)我來(lái)說(shuō)一下對(duì)應(yīng)不上的幾點(diǎn)栽烂。
1.Bintray賬號(hào)注冊(cè)
首先你的有個(gè) bintray賬號(hào)躏仇,如果沒(méi)有的話注冊(cè)一個(gè)(記得好像163郵箱不能注冊(cè)的)
這就是新版的Bintray首頁(yè),多出了一個(gè)organization的tab和之前的有所不同腺办,而且你的創(chuàng)建的倉(cāng)庫(kù)入口只能通過(guò)這個(gè)來(lái)創(chuàng)建焰手。而不是通過(guò)本身來(lái)創(chuàng)建
2.創(chuàng)建一個(gè)屬于自己的repository
首頁(yè)很明顯可以看到一個(gè)Add New Repository的按鈕,打開(kāi)之后直接輸入這個(gè)repository的name怀喉,和type即可书妻,然后直接點(diǎn)擊create 就行了(其他的隨意)。
3.創(chuàng)建Repository的Package
這個(gè)package主要就是來(lái)存放你的library
點(diǎn)擊Add New Package之后需要輸入一些信息
這是我的輸入的一些信息躬拢,大家可以參考躲履,website就是這個(gè)library在github上的地址,issue就是git的地址聊闯。
4.接下來(lái)就是studio的內(nèi)容(很多坑就在此)
1.配置Gradle Bintray Plugin工猜,在項(xiàng)目最外層的gradle里面添加
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-plugin:1.2'
}
2.接下來(lái)修改local.properties。在里面定義api key的用戶名以及被創(chuàng)建key的密碼菱蔬,用于bintray的認(rèn)證篷帅。之所以要把這些東西放在這個(gè)文件是因?yàn)檫@些信息時(shí)比較敏感的,不應(yīng)該到處分享汗销,包括版本控制里面犹褒。
下面是要添加的2行代碼:
bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY
重點(diǎn)重點(diǎn)重點(diǎn),不然你會(huì)出現(xiàn)各種奇葩的問(wèn)題404 401等什么鬼的
首先這個(gè)bintray.user名字是你的用戶名而不是organization的名字
看到了嗎就是這個(gè)賬號(hào)的名字弛针,不是下面的cuieneymaster,而是上面的cuieney
好了 那接下來(lái)就是bintray.apikey在哪里獲取呢李皇∠髯拢看到上面那副圖了嗎?點(diǎn)擊Edit profile掉房。
看到了把茧跋。就是這個(gè)API Key 輸入用戶密碼就可以拿到這個(gè)key了。好了卓囚,坑1已經(jīng)過(guò)去了瘾杭。
我們繼續(xù)studio部分
3.配置library里面的gradle內(nèi)容。
打開(kāi)gradle里面然后把下面兩行代碼添加進(jìn)去
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
別問(wèn)為什么哪亿,按照這樣操作沒(méi)問(wèn)題
好吧我還是把圖貼上吧
哦對(duì)了粥烁,還有個(gè)version版本號(hào)贤笆,就是標(biāo)記你當(dāng)前提交的版本號(hào),沒(méi)什么讨阻。記得要寫(xiě)哦芥永,不過(guò)下面你也可以直接寫(xiě)在代碼里面。
那我們繼續(xù)钝吮,下面還有很多重要的代碼要貼的埋涧,
def siteUrl = 'https://github.com/Cuieney/Crossfader' // 項(xiàng)目的主頁(yè)
def gitUrl = 'https://github.com/Cuieney/Crossfader.git' // Git倉(cāng)庫(kù)的url
group = "com.cuieneylibrary.crossfader" // Maven Group ID for the artifact,
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'Let the music to keep up with your tempo'
//項(xiàng)目的描述 你可以多寫(xiě)一點(diǎn)
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'cuieney' //填寫(xiě)的一些基本信息
name 'cuieney'
email 'cuieney@163.com'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar)
{
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
//task javadoc(type: Javadoc){
//options.encoding = 'UTF-8'
//source = android.sourceSets.main.java.srcDirs
// classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
//}
//task javadocJar(type: Jar, dependsOn: javadoc) {
// classifier = 'javadoc'
// from javadoc.destinationDir
//}
artifacts {
// archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()//讀取properties的配置信息奇瘦,當(dāng)然直接把信息寫(xiě)到代碼里也是可以的
properties.load(project.rootProject.file('local.properties').newDataInputStream())bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
userOrg="cuieneymaster"
repo = "test" //這個(gè)應(yīng)該是傳到maven的倉(cāng)庫(kù)的
name = "crossfader" //發(fā)布的項(xiàng)目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}}
看到了這些代碼肯定也是懵逼了棘催。不要問(wèn)直接粘貼過(guò)去,下面我會(huì)介紹其中的一些主要的字段到底干嘛的耳标。
在gradle里面兩個(gè)task被我注釋掉了醇坝,主要是因?yàn)閘ibrary中有中文不能生成文檔,大家如果寫(xiě)測(cè)試的話可以釋放開(kāi)麻捻,其中上面很對(duì)字段需要寫(xiě)出自己的東西纲仍,可以改一下
重點(diǎn)1
group = "com.cuieneylibrary.crossfader"
這句代碼改如何替換,這個(gè)代碼的意思是自己maven庫(kù)的地址贸毕,大家可以自己創(chuàng)建一個(gè)屬于自己的maven庫(kù) <a title="Title">Sonatype</a>點(diǎn)擊可以自己注冊(cè)一個(gè)郑叠。如果有什么不明白的可以參考
http://www.trinea.cn/dev-tools/upload-java-jar-or-android-aar-to-maven-center-repository/
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0623/3097.html
這兩篇文章。(group 這個(gè)字段應(yīng)該可以隨意寫(xiě)明棍,因?yàn)槲覀冎皇巧洗蔚絡(luò)Center的乡革,不防試試)
重點(diǎn)2
pkg {
userOrg="cuieneymaster"
repo = "test" //這個(gè)應(yīng)該是傳到maven的倉(cāng)庫(kù)的
name = "crossfader" //發(fā)布的項(xiàng)目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
這個(gè)地方如果寫(xiě)錯(cuò)你肯定出現(xiàn)404 not found ,主要是因?yàn)樾掳鎎intray多出個(gè)organization所以這里你會(huì)看到多出一個(gè)字段userOrg摊腋,不然你上傳jCenter的時(shí)候會(huì)出現(xiàn)各種錯(cuò)誤沸版。上面的userOrg repo name 可以根據(jù)我下面的截圖來(lái)填寫(xiě)
看見(jiàn)了嗎上面有個(gè)類(lèi)似于樹(shù)狀圖的圓圈
對(duì)的就根據(jù)這個(gè)來(lái)填寫(xiě)你要上面的三個(gè)信息就可以了。說(shuō)了這么多兴蒸,到了最后一步了那就是上傳到bintray视粮。
重點(diǎn)3(可忽略)
在studio 下的shell下輸入
./gradlew install
./gradlew bintrayUpload
如果成功的話你的,恭喜你橙凳,你的library已經(jīng)上傳到網(wǎng)上了蕾殴,全世界人都可以看到了,接下來(lái)還需要一步岛啸,那就是打開(kāi)bintray主頁(yè)钓觉,找到你library上傳的package,然后點(diǎn)擊add to jcenter即可坚踩,很快就會(huì)上傳上去荡灾,與老版bintray相比,速度快多了。
上傳成功就可以看到在Linked to多出來(lái)個(gè)jcenter的杯子 批幌。這時(shí)候你的library已經(jīng)上傳到了jcenter础锐,這時(shí)候你就可以在
dependencies {
compile 'com.google.code.gson:gson:2.3.1'
}
測(cè)試結(jié)果
一行代碼導(dǎo)入你的庫(kù)了。
在網(wǎng)頁(yè)輸入http://jcenter.bintray.com
然后拼接上面的你剛剛在gradle里面配置的group 找到屬于你的下載地址即可逼裆。