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

文章目录

  • 为什么要上传 Android Library 到 JCenter
  • 上传方式
  • 如何上传
    • 1、准备工作
    • 2、引入bintray-release
    • 3、待上传moudle的build.gralde
    • 4、上传
    • 5、更新
  • 测试
    • 查看依赖
    • 引用依赖

为什么要上传 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
记住,一会儿要用
Android 发布开源项目到 jcenter(各种踩坑版)_第1张图片
3、这时候你应该有一个待上传的项目
在 Android中module怎么用? 中,我们有一个项目,引入了 test ,其中 MainActivity 每次打开都弹出 “见到你很高兴”
Android 发布开源项目到 jcenter(各种踩坑版)_第2张图片
一会儿我们将要把 这个 test 传到 Jcenter
4、创建一个仓库
Android 发布开源项目到 jcenter(各种踩坑版)_第3张图片
设置仓库的名字 和 类型
Android 发布开源项目到 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 的
Android 发布开源项目到 jcenter(各种踩坑版)_第5张图片

注意
由于教程是按照鸿洋 和 Carson_Ho
两位大神的博客操作的,所以他们引入的 bintray-release 是 0.3.4 ,版本比较老,跟我们现在的 gradle版本不兼容,会报错如下:
ERROR: Unable to load class ‘org.gradle.api.internal.component.Usage’
Android 发布开源项目到 jcenter(各种踩坑版)_第6张图片
因此我们去bintray-releaseGithub主页看下最新版本修改下即可,目前为止改成 0.9.2 版本 Android 发布开源项目到 jcenter(各种踩坑版)_第7张图片

3、待上传moudle的build.gralde

Android 发布开源项目到 jcenter(各种踩坑版)_第8张图片

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地址…
Android 发布开源项目到 jcenter(各种踩坑版)_第9张图片
website 就是 上传到 jcenter 显示的 vcs 地址,由于我开始写了项目地址,末尾有.git,它默认给你变成项目地址时会再加 .git,最后连接变成了 xxx.git.git ,提示我这个 link 为空,并且Git项目为空,所以审核没通过,所以一定要保证地址正确,并且Github里项目上传完成。关于项目上传 Github 可以查看添加远程库
Android 发布开源项目到 jcenter(各种踩坑版)_第10张图片
vcs 如果写错,可以选中仓库 > 选中项目 后 Edit(这两天Bintray正好改版,以下截图为新版——2020/4/14)
Android 发布开源项目到 jcenter(各种踩坑版)_第11张图片

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

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的时候,会运行所有的环节,但是不会上传

命令一行写完,每行命令用空格隔开
Android 发布开源项目到 jcenter(各种踩坑版)_第12张图片

注意
如果报错
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Android 发布开源项目到 jcenter(各种踩坑版)_第13张图片
可能由于我们的 test module 使用的 gradle、gradle tools版本不一致导致的,由于 test 是我们本地项目,查看下
Android 发布开源项目到 jcenter(各种踩坑版)_第14张图片
Android 发布开源项目到 jcenter(各种踩坑版)_第15张图片
比我们现在的 MyApplication 项目中的版本高,我们修改本地的 gradle 和 gradle tool 版本后,重新运行命令,让后等待成功即可

Android 发布开源项目到 jcenter(各种踩坑版)_第16张图片
刷新下 bintray.com ,上传成功了
Android 发布开源项目到 jcenter(各种踩坑版)_第17张图片
点击仓库,Add To jcenter(新版截图)
Android 发布开源项目到 jcenter(各种踩坑版)_第18张图片
填写一段描述,等待管理员审核通过
Android 发布开源项目到 jcenter(各种踩坑版)_第19张图片
审核通过与否会通过站内信通知
在这里插入图片描述
通过了
在这里插入图片描述

5、更新

只修改 module 的 build.gradle 里 publishVersion 即可
Android 发布开源项目到 jcenter(各种踩坑版)_第20张图片
然后重新执行第四步的上传命令,等执行成功可以看到版本更新成了 1.0.1
Android 发布开源项目到 jcenter(各种踩坑版)_第21张图片

测试

(科学上网)

查看依赖

点开仓库
Android 发布开源项目到 jcenter(各种踩坑版)_第22张图片
点开 test 项目
Android 发布开源项目到 jcenter(各种踩坑版)_第23张图片
分别点击对应选项,查看 Maven & Gradle 引用依赖
Android 发布开源项目到 jcenter(各种踩坑版)_第24张图片

引用依赖

通过Gradle 添加依赖

implementation 'com.lxy:test:1.0.1'

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

Android 发布开源项目到 jcenter(各种踩坑版)_第25张图片
运行项目,成功弹出了“见到你很高兴”
Android 发布开源项目到 jcenter(各种踩坑版)_第26张图片

你可能感兴趣的:(Android从入门到放弃)