美文网首页
AndroidStudio发布代码到JCenter

AndroidStudio发布代码到JCenter

作者: 小斌_bingor | 来源:发表于2019-08-22 16:31 被阅读0次

    前言

    作为一个有了一定开发经验的程序员,你一定或多或少封装了一些库,用以应付一些日常的通用功能,如果每次都拷贝这些代码,或者从Git上clone下来,未免过于麻烦,且不优雅。如果能够像我们平时使用的一些开源库一样,直接api/implementation 'xxx:xxx:xxx',那就方便了,比如像这样

    implementation 'com.android.support:appcompat-v7:28.0.0'
    

    这种形式的库引入,你一定不陌生,本篇文章,将说明使用bintray-release(顺便说一下,有其他的插件也可以发布,不过这个应该是最方便的了)来发布你的代码到JCenter

    其实关于这个内容的帖子有很多,一搜一大把,不过由于AS版本、Gradle版本、bintray-release版本的不同,以及bintray网站自己的更新,导致帖子里面的流程和需要填写的参数等,都无法完美匹配现在的要求。

    本篇文章,将结合网上的资料和我自己的探索,给出一个现阶段可用的发布流程
    本篇文章写于2019/08/20,如果你看到它时,已经过了很久,请找更加新的流程攻略做参考


    内容提要

    本篇文章是使用bintray-release,在AndroidStudio里上传自己代码到JCenter的流程攻略


    注册bintray账号

    bintray注册一个账号,请注意,这里迎来第一个坑点,不要看到那一坨显眼的原谅色按钮,就着急着点进去,我们要发布的是开源库,所以请点击For an Open Source Account

    第一个坑点

    下一步没啥好说,自己填该填的资料注册,你也可以通过Github/Google/Twitter账号登陆(程序员没哪个没有Github账号的吧。。。),我是使用Github直接登陆的


    你的主页

    如果你看过其他攻略,这时候应该要开始教你“夸夸夸”的建组织建仓库了,这里我们先不急,我们先认识一下自己的主页,长这样


    主页

    如果一进来不是这样的,在一号区域(这个是一定有的)点击View Profile就能进来了

    一号区域

    进入主页、编辑账号(设置)、管理你的组织都在这里

    二号区域

    仓库区,你的代码,就可以上传到你在这里创建的仓库。这里需要注意

    • 1.这里不是唯一可以存放代码的地方
    • 2.我看到有帖子说,如果创建仓库时,仓库类型选择Maven,仓库名称也必须叫做maven(你可以看到我为了测试,也创建了一个这样的仓库),但是实际上不需要,你爱叫什么名字,就叫什么名字(当然这个会不会是因为那位博主在当时试的时候,确实就是那样的,也未可知)
    三号区域

    组织区,你可以在这里创建你的组织,然后进入创建好的组织里面,可以在里面去创建代码库(这就是为什么前面说二号区域不是唯一可以存放代码的地方)


    创建代码库

    创建组织

    如果你的库需要多人协作完成,希望其他人也能进行代码的发布,那么你需要在一个组织下去创建仓库,如果你是一个人玩,那不用看这段

    点击下图这个按钮,开始创建组织


    创建组织
    • 创建组织

    直接创建一个新组织,选这个

    创建组织.png
    填资料,分别是组织ID(必填) 组织名称(必填) 地区 网站地址 推特

    创建好了,长这样。你可以看到,同样有Add New Repository,可以创建代码库

    组织主页
    • 从Github导入组织

    如果想从Github导入组织,你必须先在你的Github创建组织,这里也大致放一下流程图

    Github创建组织

    按照上图进入创建,然后按照后面的流程指导走就行了,很简单。创建完成之后,需要开放该组织的授权


    开放授权 开放授权

    搞定之后,回到bintray的组织创建页面,点击下图的按钮


    Github导入组织

    然后选择已有并已授权的组织,后面的步骤相信大家都能轻易完成,不赘述


    选择导入的组织
    创建代码库

    这里首先需要再次提醒,如果你的代码库不是只有你一个人玩,请在创建/导入好的组织里面创建代码库,这样你才能邀请小伙伴来一起玩耍

    同样的,先展示入口


    创建代码库

    填写代码库的具体信息,详情如图

    创建代码库

    点击Create,就完成创建了

    至此,发布代码库在bintray部分的准备工作就完成了,攻略完成 1/3
    备注:bintray打开会比较慢,如果能科学上网,应该会好很多


    工程配置

    工程Gradle文件配置
    buildscript {
        repositories {
            google()
            jcenter()
            
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.6.0-alpha02'
            classpath 'com.novoda:bintray-release:0.9.1'
        }
    }
    

    最新的bintray-release插件版本请看这里

    代码库所在module的Gradle文件配置
    apply plugin: 'com.novoda.bintray-release'
    
    //推送到Bintray配置
    publish {
        repoName = 'CodeRep' 
        userOrg = "orgnamelll" 
        groupId = "com.bingor" 
        artifactId = 'hahalib2' 
        publishVersion = "1.0.0" //版本号
        desc = "a simple utils tool" //描述,选填
        website = "https://github.com/x78wteam/X78WRouter/tree/master/TestApp" 
    }
    

    这里有些地方是需要注意的

    • 1.repoName就是你创建仓库的时候填的那个仓库名
    • 2.userOrg:如果你在组织里面去创建仓库,那么这里需要填写组织ID(ID如下图);如果不在组织内,填你的bintray用户名(用户名如下图)
    仓库名 组织ID
    • 3.最终的访问路径,是groupId : artifactId : publishVersion,所以你应该懂它们的各自含义了
    • 4.关于artifactId,有帖子说必须和module名称一致,我特意测试了一下,不一样也是可以的
    • 5.website这里,需要填写你这个库对应工程的页面地址。比如像我这里,我的Git项目下,有多个工程(这个TestApp是其中一个),那我填写的,就是TestApp工程的页面地址,而非整个Git项目的主页地址。我试过填写整个Git项目的主页地址,这样的话,后面“Add to JCenter”就会都发邮件告诉你请填写有效的VCS地址(please provide a valid balabala...具体不记得了)
    上传代码到bintray

    在你的AS下方标签中,找到Terminal,输入下方指令,用户名和API密钥分别如下图

    gradlew clean build bintrayUpload -PbintrayUser=你的用户名 -PbintrayKey=你的Api密匙 -PdryRun=false
    
    用户名 APIKey

    至此,发布代码库在本地工程部分的准备工作就完成了,攻略完成 2/3


    代码库发布

    发布

    找到你刚才上传的代码库(有组织去组织里面找,没组织在个人主页找),点进去看详情,有“Add to JCenter”按钮,点击进入,然后什么也不用填,直接点击“Create”还是“Commit”(忘了截图了。。。),就可以了。

    首次发布,需要等待几个小时,然后会发一封邮件告诉你,发布成功/失败,失败的话,会告诉你原因

    Add2JCenter 发布成功

    附上之前VCS地址填错时候,收到的邮件内容

    发布失败

    审核通过后,就可以引用这个库了,在代码库详情页可以看见引用地址,

    引用地址
    implementation 'com.bingor:hahalib2:1.0.2'
    
    更新

    代码库总会需要上新版本,怎么更新呢?很简单,之前的配置里面,改动版本号,重新上传即可

    publish {
        ...
        publishVersion = "1.0.2" //改动这里即可
        ...
    }
    

    然后在Terminal再执行一次

    gradlew clean build bintrayUpload -PbintrayUser=你的用户名 -PbintrayKey=你的Api密匙 -PdryRun=false
    

    至此,发布代码库到JCenter完成,祝你也能顺利成功~


    遇到的坑

    GBK编码错误

    如果在上传的时候,遇到这个错误

    GBK错误

    打开工程的build.gradle,输入这个

    allprojects {
        ...
        tasks.withType(JavaCompile) {    //设置全局编码
            options.encoding = "UTF-8"
        }
        tasks.withType(Javadoc) {  //设置文档编码
            options {
                encoding "UTF-8"
                charSet 'UTF-8'
                links "http://docs.oracle.com/javase/7/docs/api"
            }
        }
    }
    

    本篇内容到此结束,感谢收看~~

    相关文章

      网友评论

          本文标题:AndroidStudio发布代码到JCenter

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