前言
Android开发在很多时候都想很方便的使用别人和自己的开源库,不希望将已经封装好的模块在多个项目中进行无休止的复制、粘贴;最好的方式就是将自己封装好的库发布到JCenter中,然后在新项目的APP Module中进行compile依赖,实现上传到JCenter中的方法有很多,本文介绍一种非常简单的方式进行上传--bintray-release
方法
1.建立封装库
上传到JCenter中一定要有一个库,所有需要在Android studio中新建一个类型为library的封装库
2.注册bintray.com账号
JCenter其实就是一个maven仓库,注册bintray.com账号其实就是拥有上传权限的第一步(因为JCenter库是由bintray维护的)
- 注意:注册成功后登录,然后按图所示操作,保存好生成的key,后面会用到。
3.在项目中引入bintray-release
3.1.在项目的build.gradle中添加依赖
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.novoda:bintray-release:0.4.0' //添加
}
}
- 注意:这个是在项目中的build.gradle, 不是APP Module中的build.gradle
3.2.配置需要上传的 Library Module
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release' //添加
android{ //不变
}
dependencies{ //不变
}
// 添加
publish {
userOrg = 'rickychan'//bintray.com用户名
repoName = 'android'//Repository名(bintray网站新建的Repository名,类型为maven)
groupId = 'com.ricky'//jcenter上的路径
artifactId = 'avanti'//项目名称
publishVersion = '1.1.0'//版本号
desc = 'Custom Android fast develop framework'//描述,不重要
website = 'https://github.com/AndRickyChan/Avanti'//网站,不重要;可以填写项目的github地址
}
注意:
- repoName值必须和bintray中新建的Repositoty名相同,不然上传过后容易出现404错误提示,如果你新建的Repositoty名为"maven",则这个值可以不传,bintray默认这个值为"maven"
- 新建的Repositoty的类型应为maven,协议应为Apache2.0
4.开始上传
执行下面代码进行上传
./gradlew clean build bintrayUpload
-PbintrayUser=rickychan
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
注意:
- 执行上面代码是在命令行下,目录必须在当前项目的根目录下,可以在Adnroid Studio的Terminal中执行(windows用户不需要输入前面的./)
- PbintrayUser为bintray注册设置的用户名;PbintrayKey为bintray生成的key
5.提交审核
提示上传成功后,就可以在 https://bintray.com/你的用户名/你的Repository名 中看到你上传的library
点击项目进入详情即可提交审核
注意:
- 在我写文章时候我的项目已经审核通过了,所以提交的按钮消失了,具体位置已在图中标出。
- 经过几个小时过后,JCenter审核通过,就可以使用上图标出的依赖了。
细节介绍
1.在执行上传代码的时候,有可能出现错误,请按照命令行提示的错误进行修改,然后重新执行上传操作。
2.如果上传的library Module的build.gradle中存在中文代码或者注释,则需要在项目的build.gradle文件中进行配置
allprojects {
repositories {
jcenter()
}
//添加
tasks.withType(Javadoc) {
options {
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
3.如果library更新,则需要重新上传,上传代码不变,只需要改变需要上传的Module中的build.gradle中的配置,更改publishVersion参数即可,更新库不需要等待bintray审核,会在自己新建的Repository中生成一个新版本的分支,点击可查看详情
其他
在学习将自己的库上传到JCenter的时候参考的是hongyang大神的博客,然后根据提交过程中产生的错误进行的实践,对细节进行了相应的补充。