相关术语说明
- Maven:全名Apache Maven,是Apache开发的一个软件项目管理和项目自动构建工具
- Maven仓库:存放Maven库资源的地方,可以是远程Maven服务器,也可以是本地Maven服务
- POM:Project Object Model,一个用来描述项目信息的xml文件,以xml节点的形式记录项目所属分组,项目名称,项目版本,依赖类库等信息
- JCenter:一个由 bintray.com维护的Maven仓库
- Maven Central:一个由sonatype.org维护的Maven仓库
- JCenter和Maven Central是最标准权威的两大Maven仓库,主流的类库在它们上面基本都能找到
- JCenter发布项目时,提供了同步发布到Maven Central的选项
- Maven Central配置非常繁琐,JCenter配置起来简单得多,但是JCenter在国内不好用,时常会遇到无法注册的问题,比如不支持国内邮箱,注册时无响应等问题
什么是JitPack
JCenter和Maven Central虽然是最权威的两大仓库,但是注册配置审核比较麻烦,可能还会遇到问题无法解决 动手和尝试能力不强的很容易望而却步,不怕麻烦的可以自己去试下,这里我们介绍一个比较简单的仓库JitPack
JitPack是一个与GitHub绑定,提供代码仓库服务的平台,用于将GitHub项目发布到JitPack仓库,JitPack登录使用的也是GitHub帐号 JitPack的定位是私人仓库,而不是公共仓库,因此没有审核,GitHub项目只要能够成功编译,即可发布,熟练者发布一个新版本只需要1-2分钟
创建GitHub项目
创建一个GitHub仓库,上传自己的模块或项目代码,不会GitHub的自己去学下,在此不多讲
从长远看,GitHub也是每个Coder必须掌握的技能,会的越早越好 发布自己的项目,参与开源项目,清楚远程项目的运作方式,对新手来说是一个质的提升 不要把眼光局限于增删改查和业务代码上,早点开阔眼界,实力允许时尽早步入新世界
Git的学习,建议从GitHub网站和GitHub Desktop客户端用起 Git的指令,在功能上基本是同GitHub,GitHub Desktop一致的 用熟GitHub常用操作,自然就明白那些Git指令有什么用了 不建议一上手就去背Git指令,连干什么的都不清楚,既累效率又差
勤奋虽然是必备的素质,但是方法真的非常重要,好的方法能让你学得很舒服,而不是学个代码都好似在拼命
GitHub项目要求
JitPack会自动将GitHub项目代码编译成aar库发布,前提是代码本身是可编译的 要发布的Android项目必须包含以下文件,且必须在本地能够编译成功 代码成功上传至GitHub后,要发布一个Release版本,JitPack只会寻找Release版本 发布GitHub项目到JitPack
登录后JitPack,就能看到自己所有的GitHub项目,选择要发布的项目,JitPack会自动编译可用的版本 圆圈表示正在编译,红色文档表示编译失败,绿色文档表示编译成功 点击文档图标可以查看编译日志,点击右侧按钮可以查看项目发布地址
点击文档图片,通过里面的内容我们可以发现,这和我们平时跑Android项目时的Gradle日志基本是一致的 其实JitPack就是在远程用Gradle帮我们把项目编译成了aar,然后发布到自己的仓库中
引用发布成功后的项目库
从上图我们已经看到了,如何在其它工程中使用我们发布的远程项目库
首先,在工程根目录下的build.gradle文件中添加JitPack的仓库地址
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
然后,找到要使用远程库的模块,在该模块的gradle文件中添加以下代码
dependencies {
api 'com.github.helloeasing:android-commons:1.0.5'
}
如果是第一次发布自己的代码的话,由于本地的代码和远程代码是一样的,有可能会发生缓存冲突 我们删掉所有build文件夹和.gradle文件夹,然后通过File - Invalidate Cache and Restart重启AndroidStudio即可 JitPack繁忙时,发布的库可能会晚点生效,等待几分钟后再使用即可
总结
第一次学习,由于陌生,可能会感觉比较麻烦,但是学会之后再回首就很简单了 我们只需按照以下步骤来就可以了: 【提交代码到GitHub】-【创建一个新的Release】-【JitPack自动编译发布】-【添加依赖地址】