手把手带你上传开源项目到jcenter公开库
- 1.注册账号
- 2.gradle配置
- 3.bintray上创建项目
- 4.获取apikey
- 5.执行命令,上传到bintray
- 6.开始maven引入开源库
- 7.上传jcenter
- 8.常见错误总结
1.注册账号
首先需要注册一个bintray账号,地址https://bintray.com/signup/oss,注册时需要绑定一个邮箱,***选择谷歌的邮箱,注册完成后会收到一个邮箱验证,点击验证链接重新登录即可。如果感觉打不开请连v*n。
注册页面如下:
2.gradle配置
打开工程下的build.gradle文件,添加配置:
dependencies {
...
classpath 'com.novoda:bintray-release:0.7.0'
}
打开module下的build.gradle文件,添加配置:
apply plugin: 'com.novoda.bintray-release'
publish {
repoName = 'lksdk'//可不写,默认是上传到maven,写的话这里要和你创建的仓库的名字一样
userOrg = 'liudehua'//bintray账户上你的用户名
groupId = 'com.aaa.bbb'//jcenter上的路径,你的包名
artifactId = 'projectName'//项目名称
publishVersion = '1.0.0'//版本号,自定义
desc = 'linekong common sdk version 1.0.0'//描述,看着写
website = 'https://bintray.com/liudehua'//网站,可以写你的bintray主页地址
}
对应的截图是这样的:
配置完成后,点击Sync Now,更新插件及配置,然后rebuild项目,看看是否报错。
如果出现如下错误:
com.novoda.gradle.release.AndroidLibrary$RuntimeUsage.getDependencyConstraints()Ljava/util/Set;
可能是gradle版本兼容问题。我降低后的版本是
工程build.gradle文件中
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.novoda:bintray-release:0.7.0'
gradle-wrapper.properties文件中
gradle-4.4-all.zip
3.bintray上创建项目
回到bintray主页,我们开始创建自己的Repository和Package。切记一定记得创建Package,否则会上传失败。创建Repository过程如图:
创建Package过程如图:
4.获取apikey
5.执行命令,上传到bintray
所有配置完成后,回到AS,打开Terminal,输入以下命令,回车:
gradlew clean build bintrayUpload -PbintrayUser=liudehua -PbintrayKey=xxxx -PdryRun=false
其中PbintrayUser是你的用户名
PbintrayKey是你的apikey
PdryRun=false表示上传
注意每个 - 前面有空格
6.开始maven引入开源库
上传较慢,要耐心等待,不出意外,几分钟过后,出现上传成功提示
此时回到bintray网站,你就可以看到你的开源项目信息了。此时还未上传到jcenter,但是已经可以通过maven引入了。引入方法:
//工程的build.gradle中
allprojects {
repositories {
google()
jcenter()
maven{
url 'https://dl.bintray.com/liudehua/lksdk'
}
}
//module的build.gradle中
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.oksdk.helper:basePlugin:1.0.0'
...
7.上传jcenter
如果出现404,请检查VCS,这个不是版本号,而是一个链接。
待审核通过后。回到你的AS下,删除工程build.gradle中的 仍可正常引入开源库了
url 'https://dl.bintray.com/liudehua/lksdk'
8.常见错误总结
(1) Could not create pacekage...
解决:去bintray先创建package
(2) Execution failed for task :lk-basesdk-master: releaseAndroidJavadoc...
解决:工程的build.gradle中配置
allprojects {
...
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
(3) com.novoda.gradle.release.AndroidLibrary$RuntimeUsage.getDependencyConstraints()Ljava/util/Set;
解决:调整bintray、gradle、gradle tools版本
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.novoda:bintray-release:0.7.0'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
(4)add jcenter时出现一个很大的404
检查VCS,VCS不能是一个版本号
至此,我们上传jcenter开源库已经完成了。
最后,希望这篇文章对大家有所帮助,不足之处,欢迎大家批评指正,谢谢。