使用Android studio发布项目到jcenter

前不久写了一个路径动画的库,想上传到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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值