Android Studio 发布library到jcenter详细图文教程

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按钮,点一下即可,一般最多等待个半天就能审核通过,审核通过后会邮件通知
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值