- 简介
- step 1 注册帐号
- step 2 创建organization,repository,项目
- step 3 配置工具bintray-release
- step 4 发布
- step 5 在项目中使用发布的库
- 遇到的问题
- 参考资料
简介
当开发了很好的控件和库,如何更方便的跟大家分享呢?
这就是今天的我们的目标:如何用bintray-release工具发布到JCenter(AS现在默认repository是JCenter,不再是Maven了)
step 1 注册帐号
注册帐号,点击这里
也可以直接使用github账号注册登录。注册完成之后,我们把API Key存下来,后面发布会用到:
step 2 创建organization,repository,项目
新版bintray增加了organization这项,网上很多之前的脚步都不能使用了。
我们在这里创建的organization和项目,用用到step 3中配置文件中。repository必须是maven(发布工具限制,我暂时没找到这个工具可以制定repo的接口)
创建完成后是这样的,红色划掉的是organization的名字
VCS我用的github上code地址
step 3 配置工具bintray-release
我们使用工具bintray-release来发布
-
在Project的build.gradle中添加一行 com.novoda:bintray-release:0.5.0
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.novoda:bintray-release:0.5.0' // publish tool // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
-
在Module(要发布的lib) build.gradle中加入
apply plugin: 'com.novoda.bintray-release' // publish tool // publish publish { userOrg = 'xxx'//step2 创建的organization名字 groupId = 'com.open.library'// group id, jcenter上的路径,即lib使用的时候的groupid(step 5中有说明) artifactId = 'utilslib'//step2 创建的项目名称 publishVersion = '1.0.0'//发布版本号 desc = 'this is for test'//描述,可选 website = 'https://github.com/kuyue'//网站,可选 }
step 4 发布
打开Android Studio的Terminal面板进行,执行下面的命令:
windows系统:
gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx -PdryRun=false
Mac系统:
./gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx -PdryRun=false
参数说明:
- user:Jcenter用户名
- key:step 1中拿到的API key
- PdryRun:配置参数。 true 代表会运行所有的环节,但是不会上传。(在上传之前可以先设置为true,看是否可以build成功)
上传成功会在maven repository看到
最后发布到Jcenter,点击utilslib进入详情页面,右侧Add to JCenter
等一天左右就可以看到,发布成功:
step 5 在项目中使用发布的库
使用起来非常方便:
在module的build.gradle中添加
dependencies { compile fileTree(include: [‘*.jar’], dir: ‘libs’)
// utils library
compile 'com.open.library:utilslib:1.0.171019' }
我们来看下lib库使用的这个组合“com.open.library:utilslib:1.0.171019”
- com.open.library : publish中配置的group id
- utilslib: publish中配置的artifactId,即项目名称
- 1.0.171019: publish中配置的版本号
遇到的问题
-
Could not find tools.jar.
解决方案:在gradle.properties 中配置jdk路径org.gradle.java.home=C:\Program Files\Java\jdk1.8.0_91
-
中文乱码
解决方案:在Project的build.gradle中配置comment编码
allprojects { repositories { jcenter() } tasks.withType(Javadoc) { options{ encoding "UTF-8" charSet 'UTF-8' links "http://docs.oracle.com/javase/7/docs/api" } } }
-
Could not create package ‘open.com/maven/utilslib’
解决方案:手动创建,红色部分不能修改