您的位置:首页 > 移动开发 > Android开发

使用Android studio发布项目到jcenter

2016-06-20 11:03 429 查看
前不久写了一个路径动画的库,想上传到jcenter让其他人可以通过complile的方式来依赖使用.

在网上找了很多文章,自己也试了很多方法,最后还是参照鸿神这篇文章上传上去了.说起上传库的过程,真是太心酸了.本来想转载鸿神的 快速发布项目到jcenter,无奈没有找到转载的按钮,决定自己写一篇.

因为在上传的过程中,我也遇到了许多问题,也算是记录一下,希望能帮助其他人少踩一点坑吧,注:步骤与鸿神的博客不太一样,因为直接使用鸿神博客上的步骤,上传了十几次也没有成功.

鸿神博客提到的步骤,我可能会简单带过,建议先看一下鸿神的博客.

首先最好把你的lib和你的sample module上传到github上面,至于怎么上传到github上就不多说了,网上的教程太多了,而且方法也很多.

上传成功后,我们就有一个github地址了,类似这样

https://github.com/sunflowerseat/PathAnim

接下来注册一个bintary.com的账号,最好翻墙后再访问,速度会快一点.

也可以使用三方登录如github,我就是用github登录的.

进入到maven页面下,如:

https://bintray.com/sunflowerseat/maven

导入一个github项目



选择一个项目



成功导入后,可以看到maven下多了一个包



点击查看详情:



建好bintary包之后

项目的build,gradle中加入

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.novoda:bintray-release:0.3.4'
}
}


在待上传的lib中添加

apply plugin: 'com.novoda.bintray-release'//添加


publish {
userOrg = 'sunflowerseat'//bintray.com用户名
groupId = 'com.fancy.library'//jcenter上的路径,要保持与之前导入到bintary中的package名一致
artifactId = 'pathanim'//项目名称
publishVersion = '1.0.1'//版本号
desc = 'this is a path animation library.'//描述
website = 'https://github.com/sunflowerseat/PathAnim'//填写之前上传到github后的地址
}


顺便提一点,之前信息配置都检查过没有问题,但还是提示maven不存在,或者unauthorized之类的信息.因为bintary.com的用户名是有两个的,当时不知道到底使用哪个用户名,试了很多次.其实两个用户名都是可以的,关键是apikey要填写正确.可能之前项目有些配置不对,总之后来新建项目后就上传成功了.

在Terminal命令行中输入

gradlew clean build bintrayUpload
-PbintrayUser=your username
-PbintrayKey=your apikey
-PdryRun=false


如图:



如果是第一次上传项目到jcenter,可能会给你下载一个gradle,如果直接开始编译了,说明gradle符合要求,可以跳过不看这一步.

事实上,我当时就卡在这一步了,没有翻墙,后来有大神帮我解决了,AS默认在国外的网站下载gradle,如果有翻墙软件一定要先翻墙,再执行上传命令,基本翻了墙下载也可能会比较慢的.

解决方案是,打开工程目录下的gradle->wrapper->gradle-wrapper.properties 找到distributionUrl,看一下gradle的版本,到网上找一个对应版本的下载地址,替换这个Url.

或者下载一个对应版本的gradle到本地文件夹,使用nodejs(如果没有要先下载)anywhere命令,生成一个远程链接,替换上面的Url

上面提到的操作只需要操作一次,以后再上传就不会就会直接使用下载好的gradle了.

然后重新输入编译上传命令,看到Build success你就成功了



一般会有四个.

如果编译失败,不要着急,命令行会提供错误信息的.

比如包含不可映射字符之类的错误,删掉中文注释就行了,或者添加编码的代码.

在项目的build.gradle中添加

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


如果pom文件缺失,就要检查一下你的配置是否正确了,修改后,重启AS重新执行以上操作.

如果提示unauthorized的,仔细检查用户名和apikey是否正确.如果你确定以及肯定信息正确,可能是AS有点问题,我也碰到这种情况,始终无法上传成功.重启AS,同步并clean一下你的工程.再试.

最后就是在profile页面点击 加入到jcenter按钮,审核通过之后,会发邮件给你,该页面下的link to也会多一个图标.有了这个图标之后,就可以使用了.

第一次发布项目到jcenter,总会遇到各种各样的问题,关键是要耐心 细心,还有不断尝试.一定要确保每个操作的准确性.

如果一直上传不成功,可能是真的运气不好,明天再试吧,说不定就成功了噢.

看了博客如果还有什么不懂的地方,欢迎加群讨论哦.

群号:283272067
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息