美文网首页Android developerJCenterAndroid开发经验谈
android开源库发布到jcenter图文详解与填坑

android开源库发布到jcenter图文详解与填坑

作者: zhangke3016 | 来源:发表于2016-07-30 21:13 被阅读708次

    相信很多人都用过开源项目,特别是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上面注册一个账号,然后登录进去。

    bintray登录

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

    创建仓库
    3、创建仓库
    创建仓库

    4、Add New Package

    创建Package 创建Package

    5、选择要上传的AndroidStudio项目

    AndroidStudio项目

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

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

    .gitignore

    如下:

    bintray.user=YOUR_BINTRAY_USERNAME
    bintray.apikey=YOUR_BINTRAY_API_KEY
    

    username就是你bintray账号的用户名
    apikey在这里查找:

    Edit Profile Edit API KEY

    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"]
    }
    
    build.gradle

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

    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窗口执行如下命令

    Terminal窗口
    gradlew install
    

    顺利的话之后会出现:

    BUILD SUCCESSFUL
    
    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按钮

    点击右下角的Add to JCenter按钮 Send

    跳到一个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图文详解与填坑

      本文链接:https://www.haomeiwen.com/subject/frrtsttx.html