手把手带你一步一步上传开源项目到jcenter公开库

2022-11-21,,,,

手把手带你上传开源项目到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开源库已经完成了。
最后,希望这篇文章对大家有所帮助,不足之处,欢迎大家批评指正,谢谢。