相信很多人都用过开源项目,特别是android studio普及以后,使用开源库更方便简单。而如何上传开源库到jcenter供大家方便使用,虽然网上也有教程,但还是遇坑了,最后总结一下,希望可以帮助大家。

【csdn地址: http://blog.csdn.net/zhangke3016/article/details/52075159

【本文简书地址: http://www.jianshu.com/p/0acf9e05b27e】同步更新

AndroidStudio是从Maven Repository 服务器下载类库的。基本上有jcenterMaven Central这两个服务器用于下载Android的类库。

在代码里配置如下: jcenter仓库

    allprojects {
            repositories {
                 jcenter()
           }
    }

Maven Central仓库:

 allprojects {
            repositories {
                 mavenCentral()
           }
    }

首先我们看看写的gradle代码的含义:

compile 'com.mrzk.loadingview:circleloadinglibrary:1.1.0'

其组成是这样的:

GROUP_ID:ARTIFACT_ID:VERSION

GROUP_ID指的是com.mrzk.loadingview,类似于包名;ARTIFACT_ID指的是circleloadinglibrary,类似于类库的名称;VERSION是1.1.0,也就是版本号。

1、在bintray.com上面注册一个账号,然后登录进去。

2、注册登录完成之后,创建仓库

3、创建仓库

4、Add New Package

5、选择要上传的AndroidStudio项目

6、设置bintray的username和API Key来进行bintray的加密认证

将这些信息写在local.properties文件里。写在local.properties的原因在于,bintray的username和APIKey是敏感的私人信息,应该保管好而不是把它上传到github上,正好把local.properties文件写在.gitignore里面过滤掉,不会影响上传的github项目。

如下:

bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY

username就是你bintray账号的用户名

apikey在这里查找:

7、配置库module的build.gradle文件

ext {
    bintrayRepo = 'maven'
    bintrayName = 'circleloadinglibrary'

    publishedGroupId = 'com.mrzk.loadingview'
    libraryName = 'circleloadinglibrary'
    artifact = 'circleloadinglibrary'

    libraryDescription = 'a circle loading for android'

    siteUrl = 'https://github.com/zhangke3016/CircleLoading'
    gitUrl = 'https://github.com/zhangke3016/CircleLoading.git'

    libraryVersion = '1.1.0'

    developerId = 'mrzk'
    developerName = 'zhangke'
    developerEmail = '609975727@qq.com'

    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}

我们引用该类库的代码就是:

compile 'com.mrzk.loadingview:circleloadinglibrary:1.1.0'

8、配置bintray upload的相关代码

build.gradle文件的最末行添加下面两行代码:

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

9、整个project的build.gradle里面添加最后三行代码

 dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'

        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }

10、在AndroidStudio提供的Terminal窗口执行如下命令

gradlew install

顺利的话之后会出现:

BUILD SUCCESSFUL

接下来需要把build成功的文件upload到bintray上:

gradlew bintrayUpload

一切顺利之后也会出现:

BUILD SUCCESSFUL

注意,这里有坑。我在build过程中,出现javadoc生成失败的问题,在生成javadoc时有检查文档的正确性,但是这里的检查有点过于严格了,像
这种的注释都会导致生成失败,而且由于使用的是Windows系统,默认编码是GBK,所以在上传编译时报了编码的错误问题。

解决方法:

在库项目的build.gradle里添加:

allprojects {
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}

11、同步library文件到创建的bintray仓库

点击右下角的Add to JCenter按钮

跳到一个Request to include the package ‘test’ in ‘jcenter’的页面,什么都不用做,直接点击Send按钮就可以了。

大概1个小时左右,jcenter审核通过就会在bintray上收到同意消息提醒。 恭喜你,你的类库上传到jcenter成功了!

至此大家用我写的类库circleloading,仅仅只需要添加一行代码:

compile 'com.mrzk.loadingview:circleloadinglibrary:1.1.0'

最后,

CircleLoading介绍就在我上一篇博客中,开源地址:CircleLoading

android开源库发布到jcenter图文详解与填坑的更多相关文章

  1. 分享我开发的网络电话Android手机APP正式版,图文详解及下载

    分享我开发的网络电话Android手机APP正式版,图文详解及下载 分享我开发的网络电话Android手机APP正式版 实时语音通讯,可广域网实时通讯,音质清晰流畅! 安装之后的运行效果: 第一次安装 ...

  2. 发布Android开源库,看这个文章就够了!

    最近在Flipboard实习期间写了一个轮播工具,技术上没什么难点,不过动画效果还是不错的,决定改改代码写个库开源出去.项目地址:http://github.com/chengdazhi/Decent ...

  3. 如何把开源项目发布到Jcenter

    转载自:https://www.jianshu.com/p/f66972f0607a 首先我们应该注册一个JFrog Bintray的账号 Jfrog Bintray官网 这里我们可以注意到那个绿色的 ...

  4. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  5. 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

  6. 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...

  7. 全网最详细的IDEA里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【一个子项目】并存)(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

  8. 全网最详细的Eclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

  9. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在eclipse里,则是File -> new ->  ...

随机推荐

  1. 【CodeVs 6128 Lence的方块们】

    ·希望除了内部人员以外能有人通过这道题,因为这是大米饼第一次改编的题 ·我所见到的"本题原版"的题解也很少,搜索一下应该是: #include<stdio.h> #in ...

  2. Python SMTP邮件发送

    SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块: email负责构造邮件 ...

  3. PHP中利用DOM和simplxml读取xml文档

    实例  用DOM获取下列xml文档中所有金庸小说的书名,该xml文档所在位置为 ./books.xml: <?xml version="1.0" encoding=" ...

  4. 如何彻底删除mysql

    MySQL的卸载确实很让人头疼,很多时候都无法彻底卸载干净,这样会导致我们无法重新安装新的MySQL. 下面介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL ...

  5. [TensorFlow 团队] TensorFlow 数据集和估算器介绍

    发布人:TensorFlow 团队 原文链接:http://developers.googleblog.cn/2017/09/tensorflow.html TensorFlow 1.3 引入了两个重 ...

  6. avalon加载一闪而过现象

      为了避免未经处理的原始模板内容在页面载入时在页面中一闪而过,我们可以使用以下样式(详见这里): .ms-controller,.ms-important,[ms-controller],[ms-i ...

  7. 用JavaScript按一定格式解析出URL 串中所有的参数

    1.先看看location对象 2.其中的search属性就获取当前URL的查询部分(问号?之后的部分) 3.改造location.search 比如当前URL为:https://www.hao123 ...

  8. moment.js常用时间示例,时间管理

    '今天': moment() '昨天': moment().subtract(1, 'days') '过去7天':moment().subtract(7, 'days'),moment() '上月': ...

  9. thinkphp零碎小知识

    在使用thinkphp搭建后台的时候,有很多的参数需要去配置,有的记不住还要去查找,这里把一些基本的参数整理一下,还有些零碎的知识点,与大家共勉,希望能方便大家. 友情提示:这些配置是 thinkph ...

  10. vue.js-路由

    1:编写router.js   import Router from "vue-router" import Vue from "vue" import rou ...