Android studio将Library上传到jcenter
2017-06-14 本文已影响192人
Flynn_X
下面简单介绍Android studio将Library上传到jcenter的方法,以及介绍在这过程中会遇到的各种坑。
一、jcenter个人账号注册
重要的事情说三遍:
个人注册账号地址:https://bintray.com/signup/oss
个人注册账号地址:https://bintray.com/signup/oss
个人注册账号地址:https://bintray.com/signup/oss
xxxxxxx---------不是这个地址:https://bintray.com/signup--------------------------xxxxxx
进入界面截图如下:

填写各种信息点击注册就可以了。
进入界面个人主界面后如下图:

请点击add new repository 添加一个 maven 包,一定是这个,因为默认情况下你的Library就是上传到这里的。
然后填写各种信息,尽量填写满,不然有坑。
重点:Android studio中配置
1、在项目根目录下gradle 的 dependencies 配置添加
classpath 'com.novoda:bintray-release:0.3.4'
特别注意位置

2、在需要上传的module gradle中如下配置
apply plugin: 'com.novoda.bintray-release'
publish {
userOrg = 'xxx' //bintray注册的用户名
groupId = 'com.xxx' //compile引用时的第1部分groupId
artifactId = 'xxxlibrary' //compile引用时的第2部分项目名
publishVersion = '1.0.0' //compile引用时的第3部分版本号
desc = 'This is a xxx library'
}

3、buid上传Library 到jcenter
首先点开Android studio的Terminal 如下图位置所示

在Terminal 输入如下命令然后回车则开始build 然后上传。
gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=d1d7ea4cxxx5f13c318ff0219b537b9xxx -PdryRun=false

上传完成后会如下图所示:

以上为正常操作的一步步演示,下面介绍可能遇到的坑。
jcenter上传过程中可能遇到的坑
1、401、404、400
Could not create package 'xxx/maven/xxxlibrary': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
HTTP/1.1 404 Not Found [message:Repo ‘maven’ was not found]
HTTP/1.1 400 Bad Request [message:Please enter a valid VCS URL for your OSS package
原因:401 很明显gradle 配置出错,404 jcenter账号中maven未创建或者创建位置错误 ,400 jcenter 包配置错误。
2、报中文错误未描述或者警告,进行如下配置:
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('charSet', 'UTF-8')
options.addStringOption('encoding', 'UTF-8')
}

3、其他出错原因,多检查配置是否正确。
将自己上传的library 从jcenter 导入到Android studio
jcenter 是一个开源的maven 库,目的是让你的代码开源给其他开发者或者个人使用,上传源码只是第一步。
重点:这里只说如何将自己的Library导入进项目,并进行版本控制,不介绍如何开源给其他开发者。
1、上传完成后首先你要在项目根目录gradle 配置如下:
maven { url "https://dl.bintray.com/用户名/maven/" }

2、在module gradle中正常导入即可,写入你需要的版本
