可以说上传JCenter我经历了各种波折,看了很多博客文章,总想找一种最简单的方式,最后却选择了手动上传的方式!
一,使用插件:bintray-release
我想很多人都想以最简单的方式来上传自己的代码,我也同样如此!于是看了洪洋大神的博客,使用bintray-release
Android 快速发布开源项目到jcenter
这个插件确实配置简单,而且最后只需要执行一段gradlew代码即可,
./gradlew clean build bintrayUpload
-PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
上传我发现我在bintray.com的File中多一个arr文件,然后我Add Jcenter,说是缺少pom文件!对pom文件更本不熟悉的,不知道哪里取找这个文件!于是看了看bintray-release这个插件项目,在我写这篇文章的前6天,发现有一个更新,说就是为了适应maven而生成POM文件,而且配置生成这个pom文件就需要如下连接的配置https://github.com/novoda/bintray-release/wiki/Add-support-for-syncing-to-maven-central
我配置了一下,发现不行,说是缺少什么!到这里我就果断打算弃用它了!
- 原因一 ,简单的配置加gradlew命令已经无法一键上传到JCenter并发布,关键是发布缺少pom。在bintray的项目的File下面只有一个arr文件
- 原因二,使用gradlew那段命令用了我半小时,时间太长,我以为第一次是这样,但是发现第二次,第二天的多次也是这样,我以为是连接网络太慢,开了vpn也是如此,我以为是gradlew前面使用了clean很慢,但去掉了clean,不仅有可能会缺少旧文件的清理,而且时间也没有减少多少。
- 这第一个方法用了我一两天时间,还是放弃了。
二,使用插件:
在群里面问了下,有人说是用的原生的方式,我一看配置,我就晕了,很多的我们并不需要关心的配置,我看见就放弃了!而且说是原生,其实也是需
要插件的支持
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
上面是需要在总项目中配置的,还需要在自己要发布的项目中加入插件的引用,且配置大概需要几十行!上传我看了他的截图,大概有arr,source,pom三个文件!
- 弃用原因一:配置项太多,
- 原因二,上传后只有三个文件,不完整
三,手动上传,配置简单
在https://bintray.com注册账号就不用说了
上传第一步当然是要打包arr,
- 3.1首先在我们项目的build.gradle根目录下配置打包arr相关的信息
ext {
PUBLISH_GROUP_ID = 'com.smallcake.utils'
PUBLISH_ARTIFACT_ID = 'small-utils'
PUBLISH_VERSION = '1.0.0'
}
配置项 含义
PUBLISH_GROUP_ID 分组名称
PUBLISH_ARTIFACT_ID 项目名称
PUBLISH_VERSION 版本
- 3.2 在build.gradle最后添加
apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'
- 3.3 在当前项目下运行命令:
gradlew clean build generateRelease
一分钟后在我们项目的build目录下就有一个zip文件:
- 3.4最后 我们就把这个项目上传到https://bintray.com/对应目录下,上传记得注意要选中exploding the archive选项
- 3.4.1首先我们要自己创建一个项目,如果是第一次的话,并新建一个版本号(新建仓库就不用说了吧)他们的顺序是,有了Bintray账号,建立一个maven类型的仓库,有了仓库建项目,有了项目建版本号,有了版本号上传zip文件,最后Add JCenter
选择这个方式有三个原因:
- 配置简单,ext里面三项+底部一个连接请求
- 打包完整,包含帮助文档 javadoc,源文件sources,Android包 arr,结构文件 pom 和他们对应的md5加密精简文件
- 命令简单,构建快速
gradlew clean build generateRelease
确认你的项目不需要清理,可以
gradlew generateRelease
唯一麻烦点就是需要自己手动上传一下,但是我想既然是个项目,更新起来肯定不会简单,上传肯定一个版本都会很久。那么这个麻烦也就不那么频繁了!困扰我三天的事情,总算解决了,特别记录下来!找到合适自己最简单的方式上传到JCenter!