目录
一、说明
二、操作步骤
1、注册JFrog Bintray
2、创建远程仓库
3、项目本地配置
4、打包上传
5、提交审核
三、总结:
为什么要将包上传到JCenter呢?
我们日常开发中,对于一些公共的组件总是打成jar包或aar包来提高复用性,但是如果多个项目中要用到这些jar包就需要将jar包copy到每一个项目中,非常麻烦。
Android Studio中有很好的gradle依赖管理工具,看到我们在使用一些第三方库的时候总是在build.gradle中添加一句依赖代码,build一会儿,很快就可以拿来用了,真的是好方便,那我们自己怎样将封装的jar包或aar包上传到JCenter仓库呢 ?
提示还剩13天,该死 !
仓库创建:
填写仓库信息:
完成以上步骤后点击Create按钮就创建好了自己的仓库,接下来新建一个包名,也就是项目名。
填写包配置信息:
执行完以上的操作步骤就完成了仓库的创建,接下来就可以创建自己的项目然后上传了。
首先在Project下的build.grdle中加入以下依赖:
dependencies {
classpath "guru.stefma.bintrayrelease:bintrayrelease:1.0.0"
}
看到也有的人说加入另一个依赖:
dependencies {
classpath 'com.novoda:bintray-release:0.8.0'
}
但是我在Android Studio3.2的distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip该版本下是一直失败的,一直报这个错误:Cause: com.novoda.gradle.release.AndroidLibrary$LibraryUsage.getDependency , 网上有说把版本从4.6降到4.4,但是降完后报错最低4.6,然后换了一种方法,也就是上面的第一种。
接下来在Module下的build.gradle中加入以下代码配置:
apply plugin: "guru.stefma.bintrayrelease"
version = "0.0.1"
group = "项目的包名"
publish {
userOrg = 'bintray注册的用户名'
repoName = '远程仓库名字,不指明,默认是上传到maven'
artifactId = 'compile引用时的第2部分项目名,也是远程仓库的包名'
desc = '描述,随便写'
website = '引用github主页'
}
tasks.withType(Javadoc) {//防止编码问题
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
最后一步,在Android studio的Terminal 中输入命令行,账号是网站注册时的账号,key是账号对应的秘钥。
gradlew clean build bintrayUpload -PbintrayUser=账号 -PbintrayKey=key -PdryRun=false
key获取方式往下看:
进入该页面填写密码后获取key:
复制出key:
这样就可以获取到你的API Key,放到你的命令中对号入座就行。
命令大概会执行1分多种,执行完后会提示“BUILD SUCCESSFUL”。这个时候就已经上传到你的仓库了。
点击进去看到有这些信息后说明已经上传成功了,你可以提交审核了。
但是在此还有一个坑,你可能会发现总是提交失败,提示类似以下错误:
android Failed to send a message: The version control 0.0.1 returns 404
进入以下页面提交审核。
点击发送就可以提交审核了。
第一次会比较慢一些,大约一天左右就可以审核通过,后面就会快很多了。
审核成功后打开项目所在package就可以看到引用地址了,直接在你的项目中像引用Volley似的直接引用依赖就可以了。
操作的时候还是遇到了一些坑,也耗费了不少时间去解决,主要是有以下3个坑:
这些填坑的心路历程在此记录一下,希望看到这些警示的Android开发者避免再掉坑!
参考:
发布到aar的正确姿势