Android 发布开源项目到 jcenter(各种踩坑版)

为什么要上传 Android Library 到 JCenter

方便 其他 Android 开发者 远程使用你的代码 Android Library。即,通过在 Android Studiobuild.gradle 文件中添加一句依赖即可

dependencies {
  compile 'com.squareup.okhttp:okhttp:2.4.0'
}

上传方式

上传的方式有两种,第一种是通过 bintray 官方出的插件

bintray/gradle-bintray-plugin

第二种是一个国外组织开源的插件,也就是本篇文章所采用的

novoda/bintray-release

如何上传

1、准备工作

1、注册账号

为什么要注册这个账号呢,因为 jcenter() 属于 bintray 旗下的一个仓库

注意
1、进入官网,点击 Start your free trial 注册的是企业版,我们需要的是个人版,所以直接点击我上边的链接注册
2、建议直接关联 Github 账号注册 & 登录
3、如果你的 Github账号是 qq 邮箱会没有反应,建议 Gmail

2、登录后,查看你的 API key
记住,一会儿要用
在这里插入图片描述
3、这时候你应该有一个待上传的项目
Android中module怎么用? 中,我们有一个项目,引入了 test ,其中 MainActivity 每次打开都弹出 “见到你很高兴”
在这里插入图片描述
一会儿我们将要把 这个 test 传到 Jcenter
4、创建一个仓库
在这里插入图片描述
设置仓库的名字 和 类型
在这里插入图片描述
(科学上网)

注意
如果按照 鸿洋大神的博客做,不写 repoName ,会默认上传到一个名为 maven 的仓库,所以会报错如下:
Repo ‘maven’ was not found 在这里插入图片描述

2、引入bintray-release

在你的项目的 build.gradle 添加 bintray-release 的 classpath ,bintray-release的Github地址

classpath 'com.novoda:bintray-release:0.3.4'

注意是项目的 build.gradle,不是 module 的
在这里插入图片描述

注意
由于教程是按照鸿洋Carson_Ho
两位大神的博客操作的,所以他们引入的 bintray-release 是 0.3.4 ,版本比较老,跟我们现在的 gradle版本不兼容,会报错如下:
ERROR: Unable to load class ‘org.gradle.api.internal.component.Usage’
在这里插入图片描述
因此我们去bintray-releaseGithub主页看下最新版本修改下即可,目前为止改成 0.9.2 版本 在这里插入图片描述

3、待上传moudle的build.gralde

在这里插入图片描述

apply plugin: 'com.android.application'
apply plugin: 'com.novoda.bintray-release'//添加bintray插件

android {
    不变
}

dependencies {
   不变
}

//添加
publish {
    userOrg = 'lixiaoyu2333'        //bintray.com用户名
    repoName = 'Test'				//新建的仓库名
    groupId = 'com.lxy'             //jcenter上的路径
    artifactId = 'test'             //项目名称
    publishVersion = '1.0.0'        //版本号
    desc = 'Activity show toast'    //项目描述
    website = 'https://github.com/lixiaoyu2333/test'  //放Github项目地址,记住不要加.git,是项目主页地址,项目一定要上传git
}

注意
userOrg 是 用户名,就是我们刚才注册的网站的,右上角显示的这个名字
在这里插入图片描述

注意
gradle 中 依赖 okhttp 时,这样写compile 'com.squareup.okhttp:okhttp:2.4.0'
这个路径形式 = GROUP_ID:ARTIFACT_ID:VERSION_ID
保持你的 library module 的名字同 artifactId一样,我们的 library 是 test,所以 artifactId 写 test

注意,这个website是项目主页地址,不是项目git地址…
在这里插入图片描述
website 就是 上传到 jcenter 显示的 vcs 地址,由于我开始写了项目地址,末尾有.git,它默认给你变成项目地址时会再加 .git,最后连接变成了 xxx.git.git ,提示我这个 link 为空,并且Git项目为空,所以审核没通过,所以一定要保证地址正确,并且Github里项目上传完成。关于项目上传 Github 可以查看添加远程库
在这里插入图片描述
vcs 如果写错,可以选中仓库 > 选中项目 后 Edit(这两天Bintray正好改版,以下截图为新版——2020/4/14)
在这里插入图片描述

按照上面编写即可,假设按照上述的编写,最终引入的方式为:

implementation com.lxy:test:1.0.0"

4、上传

在 Terminal 中执行以下命令

// 每行命令均用空格隔开,此处是为了展示才会分行
gradlew.bat clean build bintrayUpload 
-PbintrayUser=lixiaoyu2333  // Binary用户名
-PbintrayKey=*************  // Binary上的API key,刚才保存的
-PdryRun=false //dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传

命令一行写完,每行命令用空格隔开
在这里插入图片描述

注意
如果报错
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
在这里插入图片描述
可能由于我们的 test module 使用的 gradle、gradle tools版本不一致导致的,由于 test 是我们本地项目,查看下
在这里插入图片描述
在这里插入图片描述
比我们现在的 MyApplication 项目中的版本高,我们修改本地的 gradle 和 gradle tool 版本后,重新运行命令,让后等待成功即可

在这里插入图片描述
刷新下 bintray.com ,上传成功了
在这里插入图片描述
点击仓库,Add To jcenter(新版截图)
在这里插入图片描述
填写一段描述,等待管理员审核通过
在这里插入图片描述
审核通过与否会通过站内信通知
在这里插入图片描述
通过了
在这里插入图片描述

5、更新

只修改 module 的 build.gradle 里 publishVersion 即可
在这里插入图片描述
然后重新执行第四步的上传命令,等执行成功可以看到版本更新成了 1.0.1
在这里插入图片描述

测试

(科学上网)

查看依赖

点开仓库
在这里插入图片描述
点开 test 项目
在这里插入图片描述
分别点击对应选项,查看 Maven & Gradle 引用依赖
在这里插入图片描述

引用依赖

通过Gradle 添加依赖

implementation 'com.lxy:test:1.0.1'

因为我们依赖的 test 项目, 其中 MainActivity 每次打开都弹出 “见到你很高兴”,我们在项目中继承 test 中的 MainActivity,


运行项目,成功弹出了“见到你很高兴”
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值