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了。