写个开头的重点注意事项:一定要确保网络可以翻墙,VPN是必须的。
注册 Bintray 账号并创建仓库
Bintray 是 JCenter 库的运营商,首先要去这个网站注册一下账号 https://bintray.com
注意:第一个绿色按钮(“START YOUR FREE TRIAL”)是注册企业帐号,只有一个月的试用期。个人用户选择上图红框框里的按钮(“For an Open Source Account”),点击后会跳转到https://bintray.com/signup/oss
注意:这里的Email Address最好用gmail邮箱:xxx@gmail.com. QQ邮箱,网易邮箱暂没有成功注册过。如果是选择Sign up with github,如果github绑定的邮箱是QQ邮箱也是不行的。So ,最好有gmail邮箱。
帐户创建成功并登录。
这里就可以创建自己的资源仓库,如里没有创建,后面上传Library时不指定仓库就会上传到默认仓库(maven).
点击(“Add New Respository”),创建自己的资源仓库
创建成功后返回会看到
至此,资源仓库创建已创建成功,网上也有说需要在仓库里去创建一个包(Package),但根据我的实际操作,没有创建包也是可以的,在执行时,发现没有相应的包,会自己创建的。当前也可以自己去创建,但实在没有必要多做这一步。
接下去配置Android studio工程
在工程的根Build.gradle文件中添加
classpath 'com.novoda:bintray-release:0.8.0'
注意,这里的com.novoda:bintray-release版本是根据gradle版本号来配置的。
我这里用的是gradle-4.6-all.zip,相应的bintray-release版本号为0.8.0。如果两者版本号匹配,则有可能上传不成功.
在要上传的module的build.gradle文件中添加
apply plugin: 'com.novoda.bintray-release'
上图中的顺序最好不变,将bintray-release放在第一位,否则可能有异常情况发生。
//加上这些(如果有中文注释)
tasks.withType(Javadoc) {
options{ encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
继续添加
publish {
userOrg = '用户名' //bintray注册的用户名
groupId = 'com.sample' //compile引用时的第1部分groupId
//compile引用时的第2部分项目名 //实际引用implementation ‘groupId:artifactId:publishVersion’
artifactId = 'commonUtils'
publishVersion = '1.0.0' //compile引用时的第3部分版本号 //实际引用implementation 'com.sample:commonUtils:1.0.0'
desc = 'common utils include http request uesd in android'//项目描述
repoName="NewCreate" //你的仓库名称,没有填写默认仓库是maven//这也是很多人上传仓库不对名问题最多情况,
website = 'https://github.com/eastman-sz/AndroidLibs' //github 托管地址,最好有,实在没有,可以为空
dryRun=false
}
ext {
PUBLISH_GROUP_ID = 'com.sample'
PUBLISH_ARTIFACT_ID = 'commonUtils'
PUBLISH_VERSION = '1.0.0'
}
/* 以下可以生成一个zip包,然后上传到bintray,再发布到jCenter,这样比较快捷 */
apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'
如下图:
好了,到这里项目里的配置就算是完成了,准备上library上传到bintray.
准备bintray key,这个在上传的命令里有用,在个人的bintray帐户下获得
将API key复制出来,看下面的命令
gradlew clean build bintrayUpload -PbintrayUser=用户名(bintray) -PbintrayKey=替换真正的API_Key -PdryRun=false
如果是mac,命令头部加./
./gradlew clean build bintrayUpload -PbintrayUser=用户名(bintray) -PbintrayKey=替换真正的API_Key -PdryRun=false
打开android stuido的命令终端Terminal
执行命令
如果成功,就会显示BUILD SUCCESSFUL
在Bintray的资源仓库里就会看见刚刚上传的libray
这时可以看到,虽然上传成功了,Bintray上也的刚上传的libray,但是version并没有显示出来,所以也不能引用。接下来执行第二步命令,生成zip包,然后上传到Bintray。
执行生成zip包的命令
gradlew clean build generateRelease
同样,mac电脑在命令头部加./
./gradlew clean build generateRelease
执行完成后,会看到所生成的zip包地址,如下图
准备上传zip包
第一步
第二步
第三步
第四步
第五步,发布
发布成功后,再次进入资源仓库的包下,可以看到,已可引用,如下图
到这一步,表明library已经上传到bintray并可以引用。
注意,这时并没有上传到JCenter,引用时需要在工程的根build.gradle文件时添加
maven { url 'https://dl.bintray.com/你的Bintray用户名/仓库名}
然后就可以在需要引用的moudle的build.gradle中添加
implementation 'com.sample:commonUtils:1.0.0'
来引用commonUtils,如下图
最后一步,上传到JCenter.
接下来就是等待JCenter审核,正常情况下,6个小时左右,一般不会超过24个小时,审核成功后,会发邮件通知
好了,上传JCenter成功,引用就非常简单了
implementation 'com.sample:commonUtils:1.0.0'
一行就ok,再无其他。
如果需要更新,只需要更改版本即可,然后重复上面的必要步骤。
Congratulations