美文网首页
Android 发布在线库到JCenter详解

Android 发布在线库到JCenter详解

作者: Silence潇湘夜雨 | 来源:发表于2020-05-25 15:57 被阅读0次

    前提

    之前写了一份Android 发布在线库到jitpack详解的文章,有人会问为啥又要写一份关于上传开源库到jcenter的文章呢?我想说多做一手准备永远不会过时,不要把鸡蛋放到一个篮子里。

    正文

    闲话不多说直接进入今天的主题,如何发布在线库到jcenter呢?和jitpack不同的是,如果你需要发布在线库到jcenter首先需要登录和创建你的仓库名称。如果有人说jitpack也是需要登录,我只想说那是因为你要发布私有库,是需要money的,当然也是很简单的,这个不在今天的讨论范围之内。

    首先

    • 第一步:当然是需要注册了,个人注册地址
      jcenter提供了几种注册方式:GitHub注册、Twitter注册、Google注册和直接在jcenter注册,我这里使用的是用直接在jcenter注册的。当然,你还可以使用其他方式注册。注册的时候网络不佳,需要耐心等待。

      jcenter注册.png
    • 第二步:创建你的个人仓库

    创建仓库1.png 仓库创建2.png

    如上图所示,填写完成后点击create即可创建成功,如果网络不佳,需要你多次创建

    其次

    接下来就是对你自己的库进行设置了,这块是重点需要在你的库的build文件中配置,下面看如何去做。

    • 第一步:在你工程(Project下)的build.gradle文件下添加jcenter的依赖


      jcenter依赖.png
       //这里的customsdk是我的在线库的名称,你需要换成你自己的
       tasks.getByPath(":customsdk:javadoc").enabled=false
       //下面这两句
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
      

    注意:
    1、这里的插件版本是和我本地的gradle相匹配的,你也可以修改你插件的版本;

    2、这里的customsdk是我的在线库的名称,你需要换成你自己的。

    Maven:https://github.com/dcendents/android-maven-gradle-plugin
    Jfrog Bintray:https://github.com/bintray/gradle-bintray-plugin

    • 第二步:修改你项目(moudle下)的build版本


      jcenter配置1.png
      jcenter配置2.png
      jcenter配置3.png
      jcenter配置4.png
     //项目主页
    def siteUrl = 'https://github.com/xxx/CustomAndroidJcenter'
    //项目的git地址
    def gitUrl = 'https://github.com/xxx/CustomAndroidJcenter.git'
    //发布到JCenter上的项目名字
    def libName = "CustomSDKAndroid"
    
    //发布到组织名称名字,必须填写
    group = "com.yk.CustomSDKAndroid"
    // 版本号,下次更新是只需要更改版本号即可
    version = "1.0.3"
    //上面配置后上传至JCenter后的编译路径是这样的: implementation
    'com.yk.CustomSDKAndroid:library:1.0.3'
    
    //生成源文件
    task sourcesJar(type: Jar) {
      from android.sourceSets.main.java.srcDirs
      classifier = 'sources'
     }
    
    //生成Javadoc文档
    task javadoc(type: Javadoc) {
      source = android.sourceSets.main.java.srcDirs
     classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    
    //文档打包成jar
    task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
    }
    
    //拷贝javadoc文件
     task copyDoc(type: Copy) {
    from "${buildDir}/docs/"
    into "docs"
    }
    
    //上传到JCenter所需要的源码文件
    artifacts {
    archives javadocJar
    archives sourcesJar
    }
    
    // 配置maven库,生成POM.xml文件
    install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                //项目描述,随意填
                name 'custom Sdk'
                url siteUrl
                licenses {
                    license {
                        //开源协议
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        //开发者的个人信息
                        id 'xxxx'
                        name '木易'
                        email 'xxx@gmail.com'
                    }
                }
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
    }
    
    //上传到JCenter
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    
    bintray {
    user = properties.getProperty("bintray.user")    //读取 local.properties 文件里面的 bintray.user
    key = properties.getProperty("bintray.apikey")   //读取 local.properties 文件里面的 bintray.apikey
    configurations = ['archives']
    pkg {
        //这里的repo值必须要和你创建Maven仓库的时候的名字一样
        repo = "CustomSDK"
        //发布到JCenter上的项目名字
        name = libName
        //项目描述
        desc = 'custom Sdk'
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
    }
    javadoc {
    options{
        //如果你的项目里面有中文注释的话,必须将格式设置为UTF-8,不然会出现乱码
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
    }
    }
    
    • 第三步:在你的local.properties文件下填入在jcenter上的相关配置

       //用户名(jcenter上的)
       bintray.user=xxxx 
       //key(jcenter上的)
       bintray.apikey=**********************************
      
    user和apiKey.png

    上面的步骤完成,到此配置就完成了。

    • 第四步:到这一步就可以开始编译本地版本了。

    打开Android Studio底部工具栏的Terminal窗口,输入命令:

    windows上

    gradlew install,   显示“BUILD SUCCESSFUL”即表示成功。
    

    Mac上

     ./gradlew install。 显示“BUILD SUCCESSFUL”即表示成功
    

    如果Mac上显示没有权限,在输入上面的命令之前输入下面的命令:chmod +x gradlew即可

    到这里已经成功一半了,只差上传到Bintray了。然后我们接着在Terminal窗口输入命令:

    Windows上

    gradlew bintrayUpload 显示“BUILD SUCCESSFUL”即表示成功。
    

    Mac上

    ./gradlew bintrayUpload 显示“BUILD SUCCESSFUL”即表示成功。
    

    最后

    到此,Android studio上的配置就完成了,接下来看jcenter上的相关配置。

    • 第一步:打开你的jcenter,就可以看到类似下图所示的在线库了,到这里还没有完哦
    jcenter在线库.png
    • 第二步:提交项目到Jcenter

    点开刚刚提交项目的主页,点击右下角的添加到jcenter按钮


    发布.png
    • 第三步:等待审核(大概一个小时左右)


      审核.png
    • 第四步:审核回复


      审核回复.png
    • 第五步:你自己的依赖


      在线依赖连接.png

    当然,里面也有maven等其他依赖方式,你可以自行选择。

    总结

    到此为止,我们的发布在线库到jcenter的文章就写完了。分了几步,jcenter注册----->as中build的设置--->jcenter发布---->等待审核---->审核完成等。

    如果有不明白的地方可以加群探讨(493180098)

    感谢

    Android如何制作自己的依赖库上传至github供别人下载使用
    Android 发布项目到 JCenter 遇到的各种坑
    发布开源库上传到Jcenter

    相关文章

      网友评论

          本文标题:Android 发布在线库到JCenter详解

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