bintray上传使用的插件很多,我看到的有android-maven-plugin,gradle-bintray-plugin等等,但是都没有novoda/bintray-release来的简单,下面介绍一下这个插件的使用,其开源库在这里:https://github.com/novoda/bintray-release,参照它的wiki,我在其基础上有一些小小的简化。
一、 准备工作:注册Bintray账号
1.注册的时候请注意选择开源账户注册,这个是免费的;左边的只是免费试用(试用期30天)。
2.推荐使用关联github账号的方式注册,其他无需多说
二、创建你的Maven库
add New Repository,如果没有创建这个库,后面上传会出现不存在maven路径的错误,所以我说,这里可能必须是maven,你们可以尝试一下,可以肯定的是上传之前必须创建这样一个maven类型的库
三、引入bintray_release插件
// 需要紧接着apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'
// 官方wiki说把下面这段代码放在module的build.gradle文件下,这样的话classPath是跟着module走的,只是将这个classPath丢到project的build.gradle文件的相应位置,也是可以的。如果同一个project有多个module需要上传,可以放到project的build.gradle里
buildscript {
repositories {
jcenter()
}
dependencies {
//这里不应该是官方wiki所说的<latest-version>
classpath 'com.novoda:bintray-release:latest.release'
}
}
四、参数配置
def prop = new Properties()
prop.load(file('../local.properties').newDataInputStream())
publish {
userOrg = 'sheaye'//bintray用户名
groupId = 'com.sheaye'// jcener上的路径
artifactId = 'cube-pager'//项目名
publishVersion = '1.0.0'//版本号
desc = 'Oh hi, this is a nice description for a project, right?'//项目描述
website = 'https://github.com/sheaye/cube-pager-master'//项目网址,建议github开源库网址
bintrayUser = 'bintrayUserName'//你的bintray的用户名
dryRun = false
bintrayKey = prop.getProperty("BINTRAY_KEY")
}
这里涉及到的bintrayKey,可以在你的bintray账户中找到(下图示),由于bintrayKey是一个相对私密的数据,我存储在local.properties中,这个文件不要上传到github了。最后三个属性是我自己加上的,后面会说为什么加。
五、其他配置
如果你在源码中有中文注释,请在project的build.gradle中添加utf-8的支持,否则在生成Javadoc文件会出现编码错误
allprojects {
repositories {
jcenter()
}
tasks.withType(Javadoc){
options{
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
六、一键上传
如果是windows系统,在Android Studio的Terminal下直接输入gradlew clean build bintrayUpload
就可以了。
官方wiki是说输入$ ./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
,注意到没,-PbintrayUser=BINTRAY_USERNAME,PbintrayKey=BINTRAY_KEY和-PdryRun=false我都没再写,为啥?PbintrayUser、PbintrayKey、PdryRun其实就是publish的bintrayUser,dryRun和bintrayKey ,这三个参数其实在插件源码中已经定义了,只是在wiki中没有使用罢了。
我这里试过gradle工具栏的clean、build和bintrayUpload,但是这样会失败,还好这段命令不长。
另外需要注意:每次上传需要刷新版本号,不然会出错;其他错误,请尝试clean后再试。
不出意外的话,build successful后你的库就已经上传到bintray了,但还有最后一步:
七、测试
如图复制maven,在根目录配置
allprojects {
repositories {
jcenter()
maven {
url 'https://dl.bintray.com/sheaye/maven'
}
}
}
在app的module中配置依赖,就可以测试了,但到这还没有结束。
八、add to Jcenter
怎么样,代码量少很多吧,很简单吧?