參考鴻神的博客
http://blog.csdn.net/lmj623565791/article/details/51148825景醇;
鴻神的博客實(shí)在太簡(jiǎn)略了嘁圈,很多細(xì)節(jié)多沒有說到,我也踩了很多的坑,所以既然你點(diǎn)進(jìn)來了吼鱼,那么還是跟著我的節(jié)奏來韩脑。
1.當(dāng)然是注冊(cè)
個(gè)人免費(fèi)版注冊(cè)地址:https://bintray.com/signup/oss
之前在這就碰到一個(gè)坑,很多博客上說的注冊(cè)地址是 https://bintray.com (企業(yè)版)见坑,然后我跟著做到最后一步嚷掠,發(fā)現(xiàn)怎么都沒有"Add to jcenter"按鈕捏检,各種谷歌,才找到問題不皆。贯城。。
2.根據(jù)圖解一步步添加
![Q~0]Z%4F5TD$1V4])`B9Q6E.png](http://upload-images.jianshu.io/upload_images/4126773-8b43f0c961d9299f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![C9UK`AJY%)@U%WK]~2JMBPE.png](http://upload-images.jianshu.io/upload_images/4126773-a5f848ab8162846d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](UL0]A0H0%O.png](http://upload-images.jianshu.io/upload_images/4126773-3831cb8c79447456.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
做完以上操作后粟焊,那么可以上傳代碼了
3.配置項(xiàng)目信息
配置module下build.gradle
apply plugin: 'com.android.library'
version "1.0.0"
android {
compileSdkVersion 23
buildToolsVersion '25.0.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "${version}"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- rules.pro'
}
}
lintOptions {
abortOnError false
}
}
dependencies {
provided 'com.android.support:appcompat-v7:25.0.0'
}
//需添加如下內(nèi)容
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
//發(fā)布到組織名稱名字冤狡,必須填寫
group = "com.fighter.maven"
//發(fā)布到JCenter上的項(xiàng)目名字,必須填寫
def libName = "mylibs"
// 版本號(hào)项棠,下次更新是只需要更改版本號(hào)即可
version = "1.0.0"
/** 上面配置后上傳至jcenter后的編譯路徑是這樣的: compile 'com.fighter.maven:mylibs:1.0.0' **/
//生成源文件
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))
options.encoding "UTF-8"
options.charSet 'UTF-8'
options.author true
options.version true
failOnError false
}
//文檔打包成jar
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
//拷貝javadoc文件
task copyDoc(type: Copy) {
from "${buildDir}/docs/"
into "docs"
}
//上傳到j(luò)center所需要的源碼文件
artifacts {
archives javadocJar
archives sourcesJar
}
// 配置maven庫(kù)悲雳,生成POM.xml文件
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
name 'This is iot sdk'
developers {
developer {
id 'fighter_lee'
name 'liyang'
email 'liyang@xxx.com'
}
}
}
}
}
}
//上傳到j(luò)center
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user") //讀取 local.properties 文件里面的 bintray.user
key = properties.getProperty("bintray.apikey") //讀取 local.properties 文件里面的 bintray.apikey
configurations = ['archives']
pkg {
userOrg = "fighter"
repo = "maven"
name = libName //發(fā)布到JCenter上的項(xiàng)目名字,必須填寫
desc = 'This is a iot sdk' //項(xiàng)目描述
licenses = ["Apache-2.0"]
publish = true
}
}
項(xiàng)目下的build.gradle配置:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
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
}
}
allprojects {
repositories {
jcenter()
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
在項(xiàng)目下的local.properties下添加如下信息:
bintray.user=liyang
bintray.apikey=xxxxx
其中香追,apikey的獲取位置如圖:
輸入密碼后就能看到了
4.編譯上傳
執(zhí)行命令: gradlew install
成功后可以看到如下圖的doc文檔:
![]9NDDORD(N8}J3N8}3CGO)P.png](http://upload-images.jianshu.io/upload_images/4126773-180137b0c1eb907d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
然后執(zhí)行:gradlew bintrayUpload
如果build success合瓢,那么則上傳成功了,當(dāng)然基本上很難一次傳成功透典,坑很多晴楔,具體的坑請(qǐng)看下文。
然后我們?nèi)ズ笈_(tái)看看我們上傳的版本:
點(diǎn)擊add to jcenter 按鈕后峭咒,申請(qǐng)將我們的依賴庫(kù)傳入jcenter税弃,一般隔夜能審核通過。
5.坑與解
-
坑一:錯(cuò)誤: 編碼GBK的不可映射字符->請(qǐng)正確配置javadoc編碼
在項(xiàng)目下的build.gradle 下添加如下凑队,將中文注釋改成英文则果,別問我怎么知道的~tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
} 坑二:Could not create version ‘0.1’: HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
原因:沒有正確配置API key坑三:Could not create package 'fighter/xxx/xxx': HTTP/1.1 404 Not Found [message:Repo 'xxx' was not found]
原因:信息匹配錯(cuò)誤,請(qǐng)參考下圖對(duì)照:
![4{`%SNV]67BKC}BQS_ZN}QT.png](http://upload-images.jianshu.io/upload_images/4126773-7e0cf21700189e75.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4 . 坑四:沒有Add to JCenter按鈕:
注意:在這個(gè)地址注冊(cè):https://bintray.com/signup/oss漩氨;不是https://bintray.com/signup西壮;這兩個(gè)地址不一樣的!
5 . 坑5: 今天出現(xiàn)了個(gè)問題叫惊,403 [message:forbidden]款青,也谷歌了很久,原因是我講userOrg字段寫錯(cuò)了霍狰,所以一定要按我的坑3的匹配順序來寫相應(yīng)的字段抡草。