TryCatch Blog

上传android lib到jcenter库上面碰到的一些问题,以及解决办法

1.账号首先你得要有jcenter的账号,最简单的就是用google登陆了

请移步

2.接下来就是拿到你自己的appk 和appid了,

拿到这些东西之后,放到根目录下的local.properties文件里面,具体内容如下:

1
2
3
4
5
## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
sdk.dir=/Users/guoyoujin/Library/Android/sdk
bintray.user=trycatch
bintray.apikey=12345

3.接下来就是引入需要的插件了,这里我采用了最新的gradle配置,配置如下:

(1)根目录build.gradle配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

(2)lib 的build.gradle配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
resourcePrefix "bounceprogressbar__" //这个随便填
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.nineoldandroids:library:2.4.0+'
}
// 这个version是区分library版本的,因此当我们需要更新library时记得修改这个version
// 这个version影响后面的引用
version = "1.0.0"
def siteUrl = 'https://github.com/guoyoujin/MySnackBar' // 项目的主页
def gitUrl = 'https://github.com/guoyoujin/MySnackBar.git' // Git仓库的url
group = "com.trycatch.android" // 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 'Android SnackBar Widget' //项目描述
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 'guoyoujin' //填写的一些基本信息
name 'TryCatch'
email 'guoyoujin123@gmail.com'
}
}
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 {
repo = "maven"
name = "MySnackBar" //发布到JCenter上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}

(3)配置gradle的版本:在文件gradle/wrapper/gradle-wrapper.properties

1
2
3
4
5
6
#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

(4)查看你的gradle版本,输入命令

1
2
3
4
5
6
7
8
9
10
11
12
13
➜ MyCustomSnackBar git:(master) ✗ gradle -v
------------------------------------------------------------
Gradle 2.14.1
------------------------------------------------------------
Build time: 2016-07-18 06:38:37 UTC
Revision: d9e2113d9fb05a5caabba61798bdb8dfdca83719
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_40 (Oracle Corporation 25.40-b25)
OS: Mac OS X 10.11.6 x86_64

可以看到我的gradle版本是最新的gradle 2.14.1
而且我是用home brew管理的gradle,你也可以使用这个插件管理,他是用ruby写的

4.环境配置好了接下来就是输入命令了

1
2
3
gradle install or sudo gradle install
gradle bintrayUpload or sudo gradle bintrayUpload

如果中间没有什么问题的话,那就应该是返回success了

5.接下来就是在jcenter里面点击 AddToJcenter发出一个请求等着就行了

6.AddToJcenter成功之后,最后就是引用自己的lib库了,代码如下:

1
2
3
dependencies {
compile 'com.trycatch.android:mysnackbar:1.0.0'
}