利用bintray-release 这个插件,可以简化上传操作。
第一步:注册帐号
注册帐号地址: (被坑到这一步,一定注意。注册账号需要翻墙)
https://bintray.com/signup/oss 不要自己在百度搜bintrary官网注册,这里面注册的账号是个人开发的账号不需要审核,那么成功上传后会有一个add to jcenter按钮。如果百度官网自行注册,会标示为企业开发者,需要1个月审核,就算上传成功也不会出现add to jcenter按钮,最终还是无法使用。
两者的区别是企业用户会有一个组的概念,而个人是没有的。userOrg和PbintrayUser是一样的。
第二步:创建仓库
在bintray中的public仓库下,创建名字为maven的仓库,并且选择类型为MAVEN
第三步:获取bintray帐号Key
在右上角头像下拉选项中点击Edit Profile 里面可以显示appkey 后续上传代码到bintray需要使用。
第四步:1.在需要上传工程的根build.gradle 中添加
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.novoda:bintray-release:0.9.1'//添加 使用最新版本 解决可能的报错
}
}
allprojects {
repositories {
jcenter()
maven{
url "https://jitpack.io"
}
mavenCentral()
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
//统一声明配置
ext {
userOrg = 'xxx' //网站注册时候的用户名
groupId = 'xx.xxx.xxxx' //一般为上传工程的包名
uploadName = 'xxxx' // 上传的名字,可为工程名
publishVersion = '1.0.0'//上传的版本号
desc = 'Request code can be generated automatically' //详细说明,可自己编辑
website = "https://github.com/liulilei/${rootProject.name}" //github地址
licences = ['Apache-2.0']
}
2.剩下的只需要你在你要上传的各个module中,引入
apply plugin: 'com.novoda.bintray-release'
//添加,下面配置可以上面根目录的配置一样。
publish {
artifactId = 'apiFactory-annotation'
userOrg = 'liul1'
groupId = 'test.library.libraryuploadbintraryt'
uploadName = 'libraryuploadbintraryt'
publishVersion = '1.0.0'
desc = 'Request code can be generated automatically'
website = "https://github.com/liulilei/${rootProject.name}"
licences = ['Apache-2.0']
}
第五步: 执行:()
mac 执行:./gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=appkey -PdryRun=false
windows执行:gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=appkey -PdryRun=false
PbintrayUser这个是用户名也就是userOrg。
PbintrayKey这个是appkey。
第六步:
登录bintary 找到maven这个时候如果是上传成功的 里面会找到刚才上传到的工程,点进去点击add to jcenter 然后send,会进入审核阶段。
审核成功后有邮件提示,这个时候就可以找到gradle下面的引用地址,在需要使用的地方直接使用上传到的工程了。
第七步:
如果需要更新升级的时候,更新完代码只需要把更目录下的publishVersion,和module里面的publishVersion更新到自己的版本如1.0.0 ---->1.0.1
然后在次执行:(mac命令,windows同上面)
./gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=xxx -PdryRun=false
那么在引入的时候改变版本号即可使用最新代码。
注意:第一次上传的时候需要add to jcenter, 后面更新只需要在命令行提交到bintary即可。
--------------------------------------------------------------------------------------------------------------------
至此我们就成功的完成了一个library从创建到提交到审核到引用的所有阶段。
按照上面步骤一步一步操作基本不会碰到问题,但是网上也罗列出了一些有坑的地方,如果有遇到可以协助解决。
排坑一)
注册帐号网址:https://bintray.com/signup/oss【只有在这里注册才有add jcenter按钮!!!】
排坑二)
忽略lint检查,在提交编译的时候回去检查lint,如果没有配置忽略lint检查,它会报错,需要将所有都添加 忽略lint检查代码,包括app,包括任何一个module
代码:
lintOptions{
abortOnError false
}
将这段代码添加到gradle文件
排坑三)
如果class里面有中文字体,他会报 编码GBK的不可映射字符
task javadoc(type: Javadoc) {
options.encoding "UTF-8"
options.charSet 'UTF-8'
}
请配置到gradle文件中
排坑六)
错误:Could not create version ‘0.1’: HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
解决办法:没有配置正确的API Key
参考博客地址:https://blog.csdn.net/yang123465/article/details/54972351
https://www.jianshu.com/p/656e004fd7c4