(转)使用Gradle发布Android开源项目到JCenter(问题解决)

字数 420阅读 469

转自:http://blog.csdn.net/Small_Lee/article/details/52328613

概述

首先给出gradlew命令

gradlew clean build bintrayUpload -PbintrayUser=用户名 -PbintrayKey=xxxxxxxxxxx -PdryRun=false

最近在将写好的库发布到jCenter的一个步骤中,出现了一个错,错误信息如下:

20160826150440995.png

大概意思是说产生JavaDoc的时候出错了,经过网上查找,解决办法如下:

allprojects {
    
    repositories {
        jcenter()
    }
    
    //加上这些
    tasks.withType(Javadoc) {
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api/"
        }
    }

}

之后又遇到一个错:

* What went wrong:
Execution failed for task ':dashview:bintrayUpload'.
> Could not create version 'v1.0.0': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]

错误的大概意思是资源需要验证,经过一番尝试,解决办法如下:

publish {
    userOrg = 'smalllee'//bintray.com用户名
    groupId = 'com.robert'//jcenter上的路径
    artifactId = 'dashview'//项目名称
   .....
}

这里的artifactId是你之前最初在bintary的maven中创建的那个package的名字,这里需要对应上,否则会上传失败 :

20160829101102837.png

有些朋友有时也可能会遇到下面这个错:

* What went wrong:
Execution failed for task ':dashview:bintrayUpload'.
> Could not create package 'smalllee/maven/dashview': HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]

出这个错的原因是你创建仓库的时候名称写的不是maven,也就是说你创建仓库的时候应该按照下面的方式,名字必须指定为maven。

20160829100845780.png

上面的错解决完以后,感觉离成功已经不远了,执行gradlew命令后又遇到一个错:

Execution failed for task ':flybanner:bintrayUpload'.
> Could not upload to 'https://api.bintray.com/content/SmallLee/maven/flybanner/1.0.0/com/lxn/flybanner/1.0.0/flybanner-1.0.0-sources.jar': HTTP/1.1 404 Not Found [message:Subject 'SmallLee' was not found]

最后发现,出这个错的原因是因为一次只能上传一个library,如果你此时在其他library里面也进行了上传配置的话,就会报上面的错,这点一定要注意。

解决完上面的错误以后,就上传成功了,我们可以看到上传的项目。

20160829103651138.png
20160829105418021.png

相关文章
Android 快速发布开源项目到jcenter
Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
使用Gradle发布Android开源项目到JCenter
使用Gradle发布项目到JCenter仓库
gradle-publish

推荐阅读更多精彩内容