Android Studio自从引入Gradle以后,添加library就可以使用jcenter直接一句话导入第三方库,如下所示:
这就使得项目非常灵活,多个项目即可共用一个库,只要更新这个库,所有项目都可以随时更新。这里就讲解下如何将自己的library上传到jcenter。
1,注册bintray账号
第一步:在bintray.com上注册一个账号。(注册过程很简单,自己完成呦)
第二步:完成注册之后,登录网站,然后点击maven。
第三步:点击Add New Package创建新项目
填写表单信息,注意包名所有字母应该为小写,单词之间用-分割,比如,hellotest-api
链接地址如果没有可以填写github的,下面一个:
点击Create Package,项目就创建完成了
2,修改library
经过上面步骤,我们已经创建了仓库,这里就可以上传项目了,上传之前必须要对library进行几个修改。
1,复制bintray.gradle到library根目录中(注意是library根目录,不是项目的根目录)
2,修改项目根目录的build.gradle(这次是项目根目录哦,不是library根目录),在buildscript添加两行代码:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
//下面两行就是新增的
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
}
}
3,在library项目的build.gradle(不是项目根目录那个哦)的末尾添加 apply from: “bintray.gradle”, 如下所示
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.43"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}
//添加的就是这行代码
apply from: "bintray.gradle"
修改bintray.gradle中的上方中的信息,改成跟注册的时候信息一致即可。bintray.gradle如下所示:
//项目名
def projectName = "hellotest"
//组名
def projectGroupId = "com.hellotest.api"
//对应项目根目录的名称
def projectArtifactId = "hellotest"
def javadocName = "hellotest"
def projectSiteUrl = "https://github.com/xxx/hellotest"
def projectGitUrl = "https://github.com/xxxx/hellotest.git"
//bintray账号名
def developerId = "xxxx"
//bintray中的名字
def developerName = "xxxxxx xxx"
def developerEmail = "xx@xxx.com"
//bintray账号名
def bintrayUser = "xxx"
//bintray api key,在bintray的用户属性页中可以找到哦
def bintrayApikey = "xxxxxxxxxxxxxxxxxxxxx"
//===========以下不要修改=============
def projectPackaging = "aar"
def projectVersionName = android.defaultConfig.versionName
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
group = projectGroupId
// This generates POM.xml with proper parameters
install {
repositories.mavenInstaller {
pom {
project {
name projectName
groupId projectGroupId
artifactId projectArtifactId
version projectVersionName
packaging projectPackaging
url projectSiteUrl
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id developerId
name developerName
email developerEmail
}
}
scm {
connection projectGitUrl
developerConnection projectGitUrl
url projectSiteUrl
}
}
}
}
}
// This generates sources.jar
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))
}
// This generates javadoc.jar
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
// javadoc configuration
javadoc {
options {
encoding "UTF-8"
charSet 'UTF-8'
author true
version projectVersionName
links "http://docs.oracle.com/javase/7/docs/api"
title javadocName
}
}
// bintray configuration
bintray {
user = bintrayUser
key = bintrayApikey
configurations = ['archives']
pkg {
repo = "maven"
name = projectName
websiteUrl = projectSiteUrl
vcsUrl = projectGitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
API_KEY所在位置:
4,经过以上目录,在终端运行gradle bintrayUpload即可,在最后看到BUILD SUCCESSFUL即上传成功
3,申请jcenter审核
经过前面的步骤,aar已经上传到了仓库中,但是要在gradle直接使用需要通过jcenter的审核(一般都能过),在bintray.com中点开前面创建的项目,在项目详情页的右下脚右个Add to jcenter按钮,点一下即可,一般最多等待个半天就能审核通过,审核通过后会邮件通知