方便 其他 Android
开发者 远程使用你的代码 Android Library
。即,通过在 Android Studio
的 build.gradle
文件中添加一句依赖即可
dependencies {
compile 'com.squareup.okhttp:okhttp:2.4.0'
}
上传的方式有两种,第一种是通过 bintray 官方出的插件
bintray/gradle-bintray-plugin
第二种是一个国外组织开源的插件,也就是本篇文章所采用的
novoda/bintray-release
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
在你的项目的 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 版本
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"
在 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(新版截图)
填写一段描述,等待管理员审核通过
审核通过与否会通过站内信通知
通过了
只修改 module 的 build.gradle 里 publishVersion 即可
然后重新执行第四步的上传命令,等执行成功可以看到版本更新成了 1.0.1
(科学上网)
点开仓库
点开 test 项目
分别点击对应选项,查看 Maven & Gradle 引用依赖
通过Gradle 添加依赖
implementation 'com.lxy:test:1.0.1'
因为我们依赖的 test 项目, 其中 MainActivity 每次打开都弹出 “见到你很高兴”,我们在项目中继承 test 中的 MainActivity,