利用bintray-release插件上传jcenter流程和踩坑指南

1. 上传流程

参考了hongyang的教程https://blog.csdn.net/lmj623565791/article/details/51148825,教程相当简练,藏坑不少。
下面说我在上传的过程中需要注意的点和踩到的几个坑。
bintray-release的好处是流程相对简单,配置很少的东西就可以了。
1、https://bintray.com/注册账号,需要注意的是需要点Sign Up to an Open Source account这个地方来注册,直接注册的话是跟网上的教程不对付的。

signin.png

我是用Github的账号signin的,最好用github的登录注册,因为最终的代码还需要上传到github上才行。
2、创建repository,需要注意的就是名字需要叫maven,类型也选成Maven。bintray-release需要仓库的名字叫maven

createe.png

3、按照hongyang的教程创建脚本并上传

publish {
    userOrg = 'yocn'//bintray.com用户名,右上角
    groupId = 'com.yocn'//jcenter上的路径
    artifactId = 'seep'//项目名称
    publishVersion = '1.0.0.alpha'//版本号
    desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要
    website = 'https://github.com/yocn/SeepForDebug'
}

需要注意的点:
1、userOrg = 'yocn'这个是右上角的用户名

user.png

2、website = 'https://github.com/yocn/SeepForDebug'这个很重要,需要你把代码传到github上,这个就是你项目的地址,网上还有一些文章说不要设置成ssl的方式,这里我没有试过,不确定是不是有问题。

seep.png

上传脚本就按照教程来就好了,没有什么坑
./gradlew clean build bintrayUpload -PbintrayUser=yocn -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -PdryRun=false

2. 遇到的几个问题

Unable to load class ‘org.gradle.api.internal.component.Usage’.
No such property: FOR_RUNTIME for class: org.gradle.api.attributes.Usage

bintray-release现在最高的版本是0.9.2,我新建的新项目用的是gradle tools 6.0.1,貌似不支持,修改成gradle-5.4.1-all.zip 对应的com.android.tools.build:gradle:3.5.2

Execution failed for task ':bintrayPublish'.
> Could not publish 'xxxx/maven/seep/1.0.0.alpha': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]

要不然是用户名写错了 或者是 没有上传git,检查一下哪里的问题

Could not publish 'zhaoyocn/maven/seep/1.0.0.alpha': HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]

上面说的仓库没有命名成maven,添加一个叫maven的仓库重试一下。

Execution failed for task ':seep:javadocRelease'.
> Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): '/Users/yocn/SeepForDebug/seep/build/tmp/javadocRelease/javadoc.options'

上传至jcenter时报此错误,解决方法:在项目的build.gradle的最外层加入:

tasks.getByPath(":(你想要禁止的module名称,如app):javadocRelease").enabled = false

如:

tasks.getByPath(":app:javadocRelease").enabled = false

sync项目,OK了。

你可能感兴趣的:(利用bintray-release插件上传jcenter流程和踩坑指南)