这是一份详细&清晰的-上传Android-Library到JCenter-教程:如何使得自己的代码被别人优雅引用

  • 上传 Android Library 到 JCenter有许多方法;其中,采用 Android Studio的bintray-release插件上传代码到 JCenter的步骤 & 配置简单,可以使你快速、简单的发布开源项目

  • 本文将手把手教你 采用 Android Studio的bintray-release插件方法发布开源项目(Android Library) 到 JCenter ,包学包会包快!
    ##目录

##* 为什么要上传 Android Library 到 JCenter ?
方便 其他Android开发者 远程使用你的代码Android Library

  • 即,通过在Android Studio的build.gradle文件中添加一句依赖即可。如下图

dependencies {
compile ‘com.squareup.okhttp:okhttp:2.4.0’
}

##2. 知识储备
####2.1 代码引用的本质
对 jar 包 / aar包的引用

1.即别人引用你的代码 = 引用你的jar 包 / aar包
2.此处主要讲解一下 aar文件

####2.2 代码引用方式
对于 Android 代码引用方式主要有2种方式:

1.对于eclipse: 下载包 --> 放入到 lib 文件目录
2.对于Android Studio:在build.gradle文件中添加依赖。如下图

dependencies {
compile ‘com.squareup.okhttp:okhttp:2.4.0’
}

// 当然,Android Studio 也可以通过 下载包 --> 放入到 lib 文件目录 的方式进行包的引用

####2.3 Android Studio添加依赖(Library)原理

####2.4 JCenter 介绍

  • 定义:一种远程的Android library文件服务器

Maven仓库 = 中央远程仓库

  • 作用:存储代码 & 提供接口供外部调用内部代码

1.由 Bintray 公司维护,Bintray负责将开发者上传的Library传到JCenter中
2.Maven Central 则由sonatype.org维护
上传Android Library 到JCenter 的原理图

帮助理解:JCenter = 仓库,Bintray = 送货卡车,代码库 = 货物

本文主要讲解如何通过bintray-release插件快速上传代码(Library)到 Jcenter

##3. 具体如何上传 Android Library 到 JCenter ?

  • 整个过程分为2部分:准备工作 & 上传

  • 具体做法如下
    ####3.1 准备工作

步骤1:注册Bintray账号

注:
1.不要在官网注册,因为官网注册的是企业版,我们需要的是个人版
2.(建议)直接关联Github账号进行注册 & 登录

步骤2:在Bintray上建立仓库
具体如下图

步骤3:在代码项目中创建Module文件夹

  • 步骤如下

  • 创建成功后,你会发现Module文件夹的结构和 原有的项目文件夹(app)非常类似

步骤4:将需要上传的代码存放到Module文件中

  • 本文 以上传一个 自定义View 为例子
  • 该自定义View代码包括:1个类文件 & 属性文件

步骤5:将整个项目上传到 Github
关于如何上传到Github,此处不作过多描述。

具体请看文章:[程序员必知:这是一份全面 & 详细的 Git与Github 介绍指南](https://www.jianshu.com/p/169dbc54a87b)

####3.2 具体上传

步骤1:配置bintray-release插件
包括在Module & 项目 的Gradle文件配置:

  • 在该Module的Gradle文件中配置

<-- 配置代码 -->
// 配置1
apply plugin: ‘com.novoda.bintray-release’ // 添加bintray插件

// 配置2
publish {
userOrg = ‘carson-ho’ // Binary用户名
repoName = ‘CircileView’ // Binary上的刚才新建的仓库名(Repository)
groupId = ‘scut.carson_ho’ // 依赖名compile 'x:y:z’中的包名x
artifactId = ‘CircileView’ // 依赖名compile 'x:y:z’中的项目名y
publishVersion = ‘1.0.0’ // 依赖名compile 'x:y:z’中的版本号z
desc = ‘a CircileView’ // 对该开源组件的说明
website = ‘https://github.com/Carson-Ho/DIY_View’ // VCS地址,即填写项目上传的Github地址
}

// 特别注意:保持你的library module的名字同artifactId一样
// 1. 背景
// 在Bintray上你的项目的maven-metadata.xml文件的路径=gruopId+“/”+module名称
// 如你的groupId=scut.carson_ho,artifactId是CircileView,但module名称是circlelibrary
// 此时,项目文件在scut.carson_ho.CircileView目录下的,但maven-metadata.xml文件却是在scut.carson_ho.circlelibrary目录下的。
// 2. 冲突:若你有多个项目groupId一样 & artifactId不一样,但module名称都是library的话,maven-metadata.xml文件的地址可能会一样,即都是:gruopId+“/”+module名称,那么就可能产生冲突
// 3. 解决方案:保持module名称和artifactId一致

  • 在该项目的Gradle文件中配置

<-- 配置代码 -->
// 配置1
classpath ‘com.novoda:bintray-release:0.3.4’

// 配置2
allprojects {
tasks.withType(Javadoc) {
options.addStringOption(‘Xdoclint:none’, ‘-quiet’)
options.addStringOption(‘encoding’, ‘UTF-8’)
}
}
allprojects {
tasks.withType(Javadoc) {
options{
encoding “UTF-8”
charSet ‘UTF-8’
links “http://docs.oracle.com/javase/7/docs/api”
}
}
}

步骤2:上传项目到JCenter中

  • 在AndroidStudio的 Terminal输入以下命令

// 每行命令均用空格隔开,此处是为了展示才会分行

<-- Windows版本 -->
gradlew.bat clean build bintrayUpload
-PbintrayUser=carson-ho // Binary用户名
-PbintrayKey=************* // Binary上的API key,具体获取见下说明
-PdryRun=false

<-- Mac版本 -->
./gradlew clean build bintrayUpload
-PbintrayUser=carson-ho
-PbintrayKey=*****************************
-PdryRun=false

  • 注:获取API Key(需回到 Jcenter 网站)

  • 操作示意图

  • 第1次上传可能需要较长时间,请耐心等待(科学上网)。上传成功提示如下:

  • 注:执行可能出错的问题

// 错误日志:说明权限有问题
bash: ./gradlew: Permission denied

// 解决方案:获得权限,直接在终端输入以下命令
chmod +x gradlew

  • 至此,已经将项目上传到 JCenter了,可进入查看相关信息

但此时还不能够被外部直接被引用,请继续往下看。

步骤3:添加到JCenter

  • 请按照以下步骤真正添加该项目到JCenter

  • 提交申请后,需要等待 管理员审核通过(x小时),会以 站内私信
    方式通知

  • 至此,别人就可直接通过 添加你的依赖 来引用你的Android Library了!
  • 即,如何将代码上传到Jcenter讲解完毕
    ####3.3 额外注意:版本更新

设计模式学习笔记

设计模式系列学习视频

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
本更新

设计模式学习笔记

[外链图片转存中…(img-1wT633Ty-1715416777068)]

设计模式系列学习视频

[外链图片转存中…(img-IKJb4Y6n-1715416777068)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值