前言
雖然已經(jīng)有很多大神發(fā)過(guò)這種文章痴奏,但是自己做的時(shí)候還是有一些疑問(wèn)冰蘑,所以發(fā)這篇文章記錄一下目锭,希望能給各位一些幫助评汰。
準(zhǔn)備工作
- 一個(gè)GitHub賬號(hào),當(dāng)然這不是必要的
- 一個(gè)自己的Android Library
- 科學(xué)上網(wǎng)痢虹, Bintray似乎國(guó)內(nèi)訪問(wèn)不了
發(fā)布步驟
JCenter倉(cāng)庫(kù)創(chuàng)建
JCenter 是由Bintray進(jìn)行管理的被去,所以我們所創(chuàng)建的倉(cāng)庫(kù)也是由它進(jìn)行管理。下面是詳細(xì)步驟
1. 創(chuàng)建Bintray賬號(hào)奖唯,這一步可以使用GitHub賬號(hào)進(jìn)行代替
2. 創(chuàng)建用戶組織(user orgnization)
如圖所示惨缆,jonnypeng就是在下創(chuàng)建的組織ID,這一步是必須的丰捷,創(chuàng)建一下坯墨,反正不會(huì)懷孕。病往。
在選擇完創(chuàng)建方式之后就可以進(jìn)行創(chuàng)建組織了捣染,不過(guò)我就填了三個(gè),圖中Unique Identifier(唯一標(biāo)志符)和組織名稱(chēng)是必填的停巷,在創(chuàng)建用戶組織里面顯示的是jonnypeng是Unique Identifier而JSoftware則是組織名稱(chēng)耍攘。。像我這種有強(qiáng)迫癥的人來(lái)說(shuō)畔勤,最好取個(gè)帶點(diǎn)意義的名字吧蕾各,免得到時(shí)候又要來(lái)刪就不好了。硼被。囧
3. 創(chuàng)建倉(cāng)庫(kù)
點(diǎn)擊左下角Add New Repository的按鈕進(jìn)行創(chuàng)建倉(cāng)庫(kù)
在這里Type一般我們都是選擇Maven倉(cāng)庫(kù),Android Studio就支持這個(gè)渗磅,協(xié)議一般我都選擇MIT嚷硫,因?yàn)榧词鼓氵x其他的也沒(méi)卵用,因?yàn)檫@里是中國(guó)始鱼。仔掸。如果搞不清楚協(xié)議的區(qū)別的可以去看如何選擇開(kāi)源許可證?這篇文章医清,還有倉(cāng)庫(kù)是可以添加很多項(xiàng)目的起暮,所以不要把項(xiàng)目名和倉(cāng)庫(kù)名混在一起了。創(chuàng)建完成之后Add New Repository就會(huì)有你的倉(cāng)庫(kù)
4. 創(chuàng)建Package
點(diǎn)擊倉(cāng)庫(kù)進(jìn)行創(chuàng)建Package
這里一張截圖放不下会烙,分兩張负懦,具體的注意點(diǎn)已經(jīng)給出筒捺,上面就是創(chuàng)建JCenter的倉(cāng)庫(kù)的步驟了,接下來(lái)還要進(jìn)行配置Android Studio纸厉。好累O悼浴!颗品!
配置Android Studio Gradle
1. 配置Project 下Gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
//下面這兩行是需要添加的
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
2. 配置API Key
忘記了肯尺,還要獲取API Key。躯枢。囧
通過(guò)上面兩步就可以獲取到API Key则吟,下面進(jìn)行配置
bintray.user=johnypeng //你的用戶名,在右上角
bintray.apikey=************************************//API Key
3. 配置Module Gradle
下面的很多我也不知道是什意思锄蹂,所以我就全復(fù)制過(guò)來(lái)了氓仲,大家按照自己項(xiàng)目的詳細(xì)情況進(jìn)行配置。败匹。
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version="0.1"
//這個(gè)地方比對(duì)一下自己的項(xiàng)目
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 23
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
//這個(gè)地方不需要改
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
}
def siteUrl = 'https://github.com/JohnyPeng/ActionSheetDialog' // 項(xiàng)目的主頁(yè)
def gitUrl = 'https://github.com/JohnyPeng/ActionSheetDialog.git' // Git倉(cāng)庫(kù)的url
group = "com.android.actionsheetdialog" // 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 'A bottom dialog like IOS' //項(xiàng)目描述
url siteUrl
// Set your license
licenses {
license {
//
name 'Massachusetts Institute of Technology'
url 'http://www.opensource.org/licenses/mit-license.php'
}
}
developers {
developer {
id 'JonnyPeng' //填寫(xiě)的一些基本信息
name 'Jonny'
email 'godteen.peng@gmail.com'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
//下面這些我也不知道是什么意思,參考大神的于是就復(fù)制過(guò)來(lái)了
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 = "jonnypeng"http://JCenter上創(chuàng)建的的Organization
repo = "custom"http://你要上傳的庫(kù)的名字
name = "ActionSheetDialog" //發(fā)布到JCenter上的項(xiàng)目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["MIT"]
publish = true
}
}
上傳到JCenter中
在Android Studio 的Teminal中執(zhí)行下面這兩條命令掀亩,進(jìn)行上傳
./gradlew install //補(bǔ)充: Windows下面是使用gradlew install 和gradlew bintrayUpload
./gradlew bintrayUpload
點(diǎn)擊項(xiàng)目名然后點(diǎn)擊發(fā)布JCenter中即可舔哪,等待審核通過(guò),好像審核通過(guò)一次之后就不用再進(jìn)行審核了
通過(guò)之后就會(huì)出現(xiàn)
使用
//注意上米面那張截圖中的紅框
compile 'com.android.actionsheetdialog:actionsheet:0.1'
更新
如果有需要更新庫(kù)的可以直接修改Module的Version然后進(jìn)行上傳槽棍。捉蚤。
然后執(zhí)行
./gradlew install//補(bǔ)充: Windows下面是使用gradlew install 和gradlew bintrayUpload
./gradlew bintrayUpload
可以看到版本號(hào)的更新,使用的時(shí)候當(dāng)然兩個(gè)都行
總結(jié)
以上就是Android庫(kù)上傳到JCenter的所有步驟炼七,祝大家使用愉快@虑伞!豌拙!Chrome一直出現(xiàn)問(wèn)題陕悬,輸入中文就報(bào)錯(cuò),煩死我了按傅。捉超。。