本來(lái)我是不想寫(xiě)的,覺(jué)得網(wǎng)上的教程已經(jīng)很多了。但是真的當(dāng)我自己去實(shí)現(xiàn)的時(shí)候锭环,發(fā)現(xiàn)坑還是很多的利花。所以將這次我發(fā)布到bintray網(wǎng)站上的里程記錄下來(lái)科侈。
簡(jiǎn)單介紹
Bintray其實(shí)只是一個(gè)網(wǎng)站,他們負(fù)責(zé)維護(hù)JCenter這個(gè)庫(kù)炒事,也就是說(shuō)JCenter庫(kù)是托管在BIntray網(wǎng)站上的臀栈。但是Bintray不只是只有JCenter庫(kù)。我們也可以在上面創(chuàng)建自己的賬號(hào)挠乳,生成自己的maven倉(cāng)庫(kù)权薯。
現(xiàn)在的android studio默認(rèn)依賴的就是jcenter庫(kù),但是老版本的android studio依賴的是mavenCentral庫(kù)(因?yàn)樯蟼鲙?kù)到mavenCentral對(duì)大部分開(kāi)發(fā)者來(lái)說(shuō)有點(diǎn)難睡扬,所以改成了jcenter)盟蚣。
我們可以在工程的build.gradle文件下看到
好了 廢話不多說(shuō)、開(kāi)始上手卖怜。
注冊(cè)賬號(hào)到Bintray
https://bintray.com,首先需要在這個(gè)網(wǎng)站上注冊(cè)一個(gè)賬號(hào)屎开、
我這里直接用的github賬號(hào)登錄,但是需要郵箱驗(yàn)證马靠。注意這里不能使用qq郵箱奄抽,網(wǎng)易郵箱注冊(cè),可以用谷歌郵箱甩鳄,個(gè)人用的是foxmail(qq郵箱的另外一個(gè)名字)逞度。
注冊(cè)成功之后就是這樣的:
然后我們要?jiǎng)?chuàng)建我們的倉(cāng)庫(kù)了,類(lèi)似與github的倉(cāng)庫(kù)娩贷。
然后填寫(xiě)相應(yīng)的信息就OK了第晰,注意type要選擇maven,還要如果你想非你的組織的人可以使用的話彬祖,需要選擇public茁瘦。
然后在倉(cāng)庫(kù)里面添加一個(gè)包。用于存儲(chǔ)我們要發(fā)布的jar包储笑。
然后填寫(xiě)相關(guān)信息甜熔,如圖:
完成之后,我們的準(zhǔn)備工作就完成了突倍。~
項(xiàng)目編譯腔稀,發(fā)布
首先我們肯是需要一個(gè)已經(jīng)寫(xiě)好的library盆昙。項(xiàng)目結(jié)構(gòu)如下:
如果沒(méi)有也沒(méi)關(guān)系,我們可以新建一個(gè)library焊虏,充分調(diào)試后(如果你只是想了解如何發(fā)布到bintry上的話淡喜,在library寫(xiě)一個(gè)測(cè)試方法即可),將其作為要發(fā)布的jar包诵闭。
好了炼团,重頭戲來(lái)了,我們要在android stduio中搭建我們的上傳環(huán)境了疏尿。
- 在本工程的build.gradle文件中添加下面的代碼:
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
在文件中的位置如圖:注意瘟芝,這里可能存在版本的問(wèn)題,如果出現(xiàn)版本不對(duì)的話褥琐,嘗試用最新版锌俱。
- 在library項(xiàng)目下添加bintrayUpload.gradle文件,文件內(nèi)容如下:
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
// This is the library version used when deploying the artifact
version = "1.0.1"http://這里是你的版本敌呈,當(dāng)你需要上傳新的版本到bintry上時(shí)贸宏,只需要修改這里的版本即可
def siteUrl = 'https://git.oschina.net/crazycodeboy/ScanProj' // 項(xiàng)目的主頁(yè)
def gitUrl = 'https://git.oschina.net/crazycodeboy/ScanProj.git' // Git倉(cāng)庫(kù)的url
group = "reoger.hut.com.mylibrary" // 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 'multi-format 1D/2D barcode image processing use zxing.'
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 'you id' //填寫(xiě)的一些基本信息(也可以不填)
name 'your name'
email 'your email'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
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.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
userOrg ="hut"http://這個(gè)地方一定要填驱富,一定要填 C唷!(這里需要修改你申請(qǐng)賬號(hào)是的組織id)
repo = "Maven"http://發(fā)布到bintray上的倉(cāng)庫(kù)名
name = "CheckEditText" //發(fā)布到bintray上的包名
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
javadoc { //jav doc采用utf-8編碼否則會(huì)報(bào)“GBK的不可映射字符”錯(cuò)誤
options{
encoding "UTF-8"
charSet 'UTF-8'
}
}
這里需要對(duì)其進(jìn)行說(shuō)明:
必改的內(nèi)容有:
userOrg填寫(xiě)你的組織Id褐鸥,可以在如圖的界面找到相信的信息。
repo填寫(xiě)你的倉(cāng)庫(kù)名赐稽,name填寫(xiě)你的包名叫榕,可以在如圖所示的地方找到相應(yīng)的信息。
3.填寫(xiě)完畢之后姊舵,需要在library的build.gradle文件中添加一句:
apply from: "bintrayUpload.gradle"
4.最后晰绎,我們需要在項(xiàng)目的local.properties填寫(xiě)我們的身份信息。添加下面這兩句到我們的目錄下:
bintray.user=用戶名
bintray.apikey=xxxxxxxxxxxxxxxxxx
用戶名可以在這里找到
apiKey在這里找:
輸入賬號(hào)密碼就可以活到apiKey了括丁。
好了荞下,上面的工作完成之后,我們離成功已經(jīng)不太遠(yuǎn)了史飞。
接下來(lái)在termial中輸入命令:
gradlew install
如果沒(méi)有錯(cuò)誤的話尖昏,會(huì)提示BUILD SUCCESSEUL,然后我們?cè)谳斎耄?/p>
gradlew bintrayUpload
成功构资!~
去網(wǎng)站上看一看~:
已經(jīng)有了~抽诉,大功告成。
添加依賴到項(xiàng)目中
發(fā)布之后吐绵,我們就可以將他引入到我們的項(xiàng)目中了迹淌。
在要引入項(xiàng)目的build.gradle目錄下河绽,添加依賴:
maven { url 'https://hut.bintray.com/Maven' }
其中的url就是我們的組織地址。
然后唉窃,在我們要依賴的moudle下耙饰,添加我們需要的依賴,例如:
這個(gè)可以在這里找到:
然后就可以使用我們之前寫(xiě)好的功能了~N品荨榔幸!。
踩坑記錄:
我遇到的情況基本上概括了矮嫉,要是早一點(diǎn)看到這一片博客我就不會(huì)在這卡那么就了~~~~~~~~~~
http://blog.csdn.net/linglongxin24/article/details/53415932#comments