利用Gradle发布Android Studio项目到JCenter

本文详细介绍了如何将Android Studio项目发布到JCenter的过程,包括在Bintray网站上注册帐户、配置Gradle插件、设置bintray.gradle文件及gradle.properties文件等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android Studio默认的远程仓库是JCenter,在bintray网站。本文将介绍如何将studio项目发布到Jcenter。

  • 注册bintray帐号 —— [个人免费版的网址]
    这里写图片描述

  • 获取用户名和APIkey
    这里写图片描述
    nobady即为用户名
    通过图中的1、2、3、4步骤可以获取apikey
    这里写图片描述

  • 创建组织

这里写图片描述

点击图中 的Create Organization即可进入创建组织页面

这里写图片描述
根据自己的实际情况填写信息,完成之后点击Create即可创建组织,其中第一行是组织id,第二行是组织名称。后面提到的gradle.properties文件中的PROJ_USER_ORG的值就是组织id

  • 添加Repo

    创建完组织之后,还要在组织中添加一个Repository
    这里写图片描述

这里写图片描述
其中的Name的值 为 配置文件中PROJ_USER_MAVEN的值。

  • 添加package
    创建完Repo后,还需要添加package
    这里写图片描述
    这里写图片描述

其中Name的值就是配置文件中PROJ_NAME的值。

接下来,就是在studio进行的操作

  • 插件依赖
    在工程的build.gradle文件中添加如下代码
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'        

即可完成对“gradle-bintray-plugin”以及“android-maven-plugin”插件的依赖

  • 脚本代码

    在工程目录下创建文件bintray.gradle,然后将以下内容复制进去即可

group = PROJ_GROUP
version = PROJ_VERSION
project.archivesBaseName = PROJ_ARTIFACTID

apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += configurations.compile
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

javadoc {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
        title "$PROJ_NAME $PROJ_VERSION"
    }
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

install {
    repositories.mavenInstaller {
        pom.project {
            name PROJ_NAME
            description PROJ_DESCRIPTION
            url PROJ_WEBSITEURL
            inceptionYear '2016'

            packaging 'aar'
            groupId PROJ_GROUP
            artifactId PROJ_ARTIFACTID
            version PROJ_VERSION

            licenses {
                license {
                    name 'The Apache Software License, Version 2.0'
                    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    distribution 'repo'
                }
            }
            scm {
                connection PROJ_VCSURL
                url PROJ_WEBSITEURL

            }
            developers {
                developer {
                    id DEVELOPER_ID
                    name DEVELOPER_NAME
                    email DEVELOPER_EMAIL
                }
            }
        }
    }
}

bintray {
    user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : project.property('BINTRAY_USER')
    key = project.hasProperty('bintrayKey') ? project.property('bintrayKey') : project.property('BINTRAY_KEY')

    configurations = ['archives']

    dryRun = false
    publish = true

    pkg {
        userOrg = PROJ_USER_ORG //这个是你创建时的organization,必须要有,不然没办法找到指定路径
        repo = PROJ_USER_MAVEN
        name = PROJ_NAME
        licenses = ['Apache-2.0']
        vcsUrl = PROJ_VCSURL
        websiteUrl = PROJ_WEBSITEURL
        issueTrackerUrl = PROJ_ISSUETRACKERURL
        publicDownloadNumbers = true
        version {
            name = PROJ_VERSION
            desc = PROJ_DESCRIPTION
            vcsTag = PROJ_VERSION

            gpg {
                sign = true
            }
        }
    }
}
  • Module配置

在需要发布到Jcenter的module(比如library)的build.gradle里配置以下内容,必须在最后一行添加,否则报错

apply from: '../bintray.gradle'
  • gradle.propreties文件的配置
BINTRAY_USER= 在bintray上的账号名
BINTRAY_KEY=  在bintray上的API KEY
PROJ_USER_ORG=在bintray上的组织id
PROJ_USER_MAVEN=在bintray上的repo名字
PROJ_NAME=在bintray上的repo名字下的包名

PROJ_GROUP= groupId,自己配置
PROJ_VERSION=version,自己配置
PROJ_ARTIFACTID=artifactId

PROJ_WEBSITEURL=github上的url就好了,可以不填
PROJ_ISSUETRACKERURL=可以不填
PROJ_VCSURL=github上的ssh就好了,可以不填
PROJ_DESCRIPTION=描述,可以不填


DEVELOPER_ID=发布人id,自己填
DEVELOPER_NAME=发布人名字,自己填
DEVELOPER_EMAIL=发布人邮箱,自己填

别人引用项目时的格式为

compile 'PROJ_GROUP:PROJ_ARTIFACTID:PROJ_VERSION'
  • 上传至JCenter
    如果你到了这一步,那么说明离成功已经很近了。接下来就是将项目上传到JCenter
    在studio的Terminal中依次执行下面代码

    gradlew install
    gradlew bintrayUpload

    如果是第一次执行,那么这个过程会很久,不用着急,慢慢等待。

    不出意外,会在Terminal中看到BUILD SUCCESS.

    如果出现401错误,那么就是自己的配置文件中的值没有写对,如果还不行,就检测自己的用户名和apikey是不是正确的。

    上传成功之后,即可在自己的组织下看到项目

    这里写图片描述
    然后点击进去,在右下角有个按钮 add to jcenter
    这里写图片描述
    点击send,等待审核通过,通过后,即可完成上传
    如果不点击add to jcenter ,那么就无法通过

    compile 'xxx:xxx:xxxx'

    这种方式进行引用项目

  • 项目更新
    上传的库进行升级的时候,须更改build.gradle下的version、versionCode、versionName,否则无法进行打包上传。更改完之后重新执行上传至Jcenter步骤。上传完成可在项目主页下看到更新的版本号。

至此,说明你的项目已经上传到jcenter了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值