Fork me on GitHub

Bintray+AndroidStudio发布项目到maven和jcenter

文章概述:

本篇文章记录,在Android Studio上,编译项目通过bintray发布到Maven仓库,并同步到Jcenter仓库。

bintray用户配置

注册bintray账号

bintray官网注册账号

在官网最底下有个选项才是个人用户注册的入口,如图:

image

获取API KEY

在用户中心,获取用户名和Api Key.

bintray上创建项目

新建一个maven仓库,然后添加项目

创建Android项目

创建工程添加开源module

创建工程,然后添加需要开源道bintray的library项目模块,在工程根目录build.gradle中添加bintray-release发布工具引用,和防止乱码配置,具体如下:

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
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.novoda:bintray-release:0.3.4'

}
}

allprojects {
repositories {
jcenter()
mavenCentral()
maven { url 'https://dl.bintray.com/liusong/android' }
}

//防止开源发版乱码问题
tasks.withType(Javadoc) {
options{
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/8/docs/api"
}
}
}

配置好后,gradle async 下载发布工具依赖库

开源库的配置

在需要发布的moudle的gradle文件中配置发布信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'

...

publish {
userOrg = 'liusong'//bintray.com用户名
repoName= 'android' //仓库名
groupId = 'com.liusong.android'//jcenter上的路径
artifactId = 'banner'//项目名称
publishVersion = '1.0.0'//版本号
desc = 'a banner library for android app'//描述,不重要
website = 'https://github.com/cnlius/android-banner'//网站
licences = ['Apache-2.0']
}

发布开源项目

终端中执行发布到bintray的maven仓库命令

1
./gradlew clean build bintrayUpload -PbintrayUser=liusong -PbintrayKey=*************** -PdryRun=false

项目发布后会在bintray中看到相关信息,找到如下图的配置信息:

image

这个信息会在使用这个项目的时候需要。

注意:在maven仓库项目信息右下角有Add to Jcenter按钮,点击即可发布到Jcenter仓库上,可能需要点时间才能看到发布成功.

发布后的项目的使用

  • 在开发的项目gradle添加依赖来中使用jcenter开源的项目:
1
2
3
4
5
dependencies {
// 格式 GROUP_ID:ARTIFACT_ID:VERSION
//(具体值要参考上面提到的maven build settings项目配置信息)
compile 'com.ls.library:library:1.0.1'
}
  • 如果项目没有添加到jcenter,则需要指明maven地址才能使用
1
2
3
4
5
6
7
8
9
10
repositories {
jcenter() //使用jcenter
mavenCentral(); //使用maven
//maven远程仓库地址
maven { url 'https://dl.bintray.com/liusong/android' }
}

dependencies {
compile 'com.liusong.android:banner:1.0.0'
}
坚持原创技术分享,您的支持将鼓励我继续创作!