使用JitPack管理Android项目中公共模块库
来源:互联网 发布:企业基础数据规范标准 编辑:程序博客网 时间:2024/05/16 02:44
随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可。
现在Android项目中一般使用Gradle进行依赖库的管理,我们可以在项目中使用compile project (':moudleName')
来直接引用本地的模块库,为了方便在其他项目引用这些公共模块,我们将一些公共的模块上传到Github上面,然后通过发布到JitPack或者是jCenter上。不过因为jCenter中审核时间较长,而我们的公共库主要为了方便项目组使用,而更加方便快捷的JitPack就成为我们的选择。
单模块的项目
1.创建项目后,选择新建模块,项目目录如下所示:
2.修改项目的build.gradle文件,在dependencies
中添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
。
注意:是在最外面的项目中添加,不是在app或者模块中的build.gradle添加
3.修改需要上传模块的build.gradle文件,在顶部添加如下代码:
// JitPack Mavenapply plugin: 'com.github.dcendents.android-maven'// Your Groupgroup='com.github.username'
4.在Github中创建repository,如图所示:
5.将代码上传到Github中,上传后的代码结构如图所示:
6.打开项目的Github主页,创建一个Release或Tag,如图所示:
7.打开JitPack官网, 在输入框中输入Github项目主页地址,点击Look up按钮,就可将上传好的代码发布到JitPack上面去:
8.代码提交后,按照JitPack生成的配置信息,在引用的项目中通过Gradle引入即可。
在要引用项目的最外面的build.gradle文件中加入JitPack地址,如下所示:
allprojects { repositories { ... maven { url 'https://jitpack.io' } }}
然后在需要引用的模块或者app中加入依赖,格式如下:
dependencies { ... compile 'com.github.User:Repo:Tag' //比如例子:com.github.aijun198600:AJJitPackMoudle:1.0.0}
如果对于依赖名称不了解的话,可以打开上一步JitPack中显示的Gradle build日志,在日志中找到如下的Build artifacts。
这样子,一个单模块的公共库就已经发布了。
多模块的项目(Multi-module)
当公共库中有多个模块的时候,甚至模块之间有相互依赖的情况,是否可以继续使用JitPack来进行管理呢? 答案当然是是的。下面我们将一步一步来构建多模块项目的管理。
1.在项目中继续新增一个另外的模块,项目目录如下所示:
2.与单模块的第三部操作一样,在新添加的模块的build.gradle文件,在顶部添加如下代码:
// JitPack Mavenapply plugin: 'com.github.dcendents.android-maven'// Your Groupgroup='com.github.username'
3.将新修改的代码上传到Github中,并按照单模块操作的第六步一样,创建一个Release或Tag:
4.继续按照单模块操作的第七步一样,打开JitPack官网, 在输入框中输入Github项目主页地址,点击Look up按钮,就可将上传好的代码发布到JitPack上面去,可以看到新发布的版本已经出来了:
打开打包日志可以看到我们新增加的模块已经打包成aar格式的包了:
可以看到新发布的包的依赖格式已经改变了,由原来的'com.github.User:Repo:Tag'
改成了'com.github.User。Repo:Module:Tag'
,我们对模块的引入必须改成如打包日志发布中的artifact id,如上图中所圈中的部分。
5.添加项目之间的依赖,比如在ajlog
模块中添加ajotherlog
的依赖,就需要修改ajlog
模块的build.gradle文件,在文件中加入依赖:
dependencies { ...... compile project (':ajotherlog')}
Gradle Sync后然后将修改后的代码上传到Github上面,并创建一个新的Release或Tag:
然后重复第四步的操作,继续打开JitPack官网,Look up一下,就可以看到我们新的版本已经build了。
在我们的测试项目中添加ajlog
模块的依赖: compile 'com.github.aijun198600.AJJitPackMoudle:ajlog:1.0.2'
点击Sync now,可以看到底部进度条,Gradle会自动下载ajlog
模块的依赖ajotherlog
模块。
至此,我们多模块的公共库也可以通过JitPack来进行管理。
依赖中包含jar包或者aar包
有时候公共库中的模块有依赖jar包或者aar包,或者是一些私有的代码不便于公开,我们可以打包成jar或者aar包,作为其他模块的依赖。我们也需要研究一种方式来通过JitPack管理jar包或者aar包。经过测试多次,仍然有一些问题无法解决,期待有人研究出解决方案。
有更多问题或者好的方法可以在我的简书或者博瑞立方终端组中进行留言交流。
- 使用JitPack管理Android项目中公共模块库
- 如何让自己项目在Android studio中以compile被使用(jitpack.io)
- Android-使用JitPack快速生成GitHub项目依赖地址
- 使用JitPack发布Android开源库
- 使用npm管理weex组件及公共模块库
- Android 急速发布项目到 JitPack
- Android 急速发布项目到 JitPack
- Android 急速发布项目到 JitPack
- 通过Maven的版本管理来管理项目公共模块
- Android:使用JitPack发布Github开源库
- jitpack使用gradle4.1发布Android包
- eclipse中使用maven管理android项目
- 利用JitPack自建Android Compile依赖库
- JitPack使用第三方依赖库
- jitpack第三方依赖库使用
- Android Studio创建Android公共库模块
- Android公共库项目的创建与使用
- Android 通过JitPack 发布开源项目到jcenter
- Service xxx does not have a SELinux domain defined
- 文章标题
- html5新增元素
- pcharm配置pyqt5(Anaconda3 python环境)做界面开发
- 《计算机网络》谢希仁版学习笔记1-概述
- 使用JitPack管理Android项目中公共模块库
- 问题 A: 例题1_09 闰年判定(逻辑表达式)
- cmd杀进程
- python基础-方法嵌套、就近原则、global、nonlocal、函数即变量
- 二分法查找数组中的元素并返回其对应的索引
- 【论文笔记】In Defense of the Triplet Loss for Person Re-Identification
- 文章标题
- POJ1328-Radar Installation(贪心)
- 文章标题