对于一些想要供多个项目使用的安卓library来说,可以将其发布到JCenter上,然后使用maven的库构建项目,会大大简化开发过程。下面说一下发布到JCenter的流程。
1.登录https://bintray.com/signup/oss 网站注册一个账号(注意,需要注册的是个人账号而不是一个组织账号,组织账号无法发布到JCenter)
2.创建一个maven仓库
点击add New Repository创建一个仓库(如果已经有一个maven仓库了就不需要创建),进入创建页面 ,命名一般叫maven,type选择Maven类型 如图
3.在maven仓库下创建package
首先 你要发布一个库,必须要配置groupId、artifactId。在bintray,必须创建package,才能发布库,一个package对应一个库,这里的package并不是包名,而是与artifactId对应。
例如,gradle引用gson:
compile 'com.google.code.gson: gson : 2.8.0'
group指定的com.google.code.gson就是groupId,name指定的gson,就是artifactId。如果gson是你的项目,并且发布到bintray,就需要创建gson package.
进入maven仓库 点击add new package 进入package添加界面
点击add new package 进入package添加界面
我们需要发布的库,artifactId=demo_package:
Name填写"demo_package";
Licenses选择开源许可,可选Apache-2.0
Version Control建议填github项目地址(实际上填什么都可以)
点击“Create Package”,如无意外,package创建成功
4.进入配置Android Library环节
然后在project中的build.gradle中添加如下代码
buildscript {
dependencies {
classpath 'com.novoda:bintray-release:0.8.0'
}
}
allprojects {
repositories {
maven { url 'https://dl.bintray.com/kkmike999/maven' }
}
}
把kkmike999替换成自己的用户名即可
然后在要上传的module的build.gradle文件中加入如下代码
apply plugin: 'com.novoda.bintray-release'
publish {
userOrg = 'corrine' //bintray注册的用户名
groupId = 'com.corrine.test' //compile引用时的第1部分groupId
artifactId = 'demo' //compile引用时的第2部分项目名
publishVersion = '1.0.0' //compile引用时的第3部分版本号
}
groupId上传上去后就是compile引用时的第1部分groupId,artifactId必须和远程创建的package名字一致,publishVersion就是要发布的版本号
5.执行上传命令
在Android Studio的Terminal面板进行,执行下面的代码即可:
gradlew clean build bintrayUpload
-PbintrayUser=jcenter //jcenter 用户名
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx // 注册账号获取到的apikey
-PdryRun=false
api key可以在自己的profile页中找到,如图,输入密码就会显示出自己的api key
user就是用户名,key就是我们自己的的Api key,dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。
然后就是等待,当运行并上传完成,看到BUILD SUCCESSFUL就没问题了,如果有问题,根据log排查下。
6.发布到jcenter
点击进入package的首页 ,在general中可以看到有add to jcenter选项,点击该选项,进入申请页面
输入申请信息提交就可以了 一般得等待几小时
申请成功会变成如图所示的样子,就可以从jcenter下载了。