Android公共jar,使用JitPack管理Android项目中公共模块库

随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可。

现在Android项目中一般使用Gradle进行依赖库的管理,我们可以在项目中使用compile project (':moudleName')来直接引用本地的模块库,为了方便在其他项目引用这些公共模块,我们将一些公共的模块上传到Github上面,然后通过发布到JitPack或者是jCenter上。不过因为jCenter中审核时间较长,而我们的公共库主要为了方便项目组使用,而更加方便快捷的JitPack就成为我们的选择。

单模块的项目

1.创建项目后,选择新建模块,项目目录如下所示:

9fe6e090d1cc428c3d3c0a07cedb80a9.png

2.修改项目的build.gradle文件,在dependencies中添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'。

注意:是在最外面的项目中添加,不是在app或者模块中的build.gradle添加

048bd98757b2303a7be823feed3fac82.png

3.修改需要上传模块的build.gradle文件,在顶部添加如下代码:

// JitPack Maven

apply plugin: 'com.github.dcendents.android-maven'

// Your Group

group='com.github.username'

534d1130e23eefd408691509114b797f.png

4.在Github中创建repository,如图所示:

4cd6e4b906e9fcddc62c05ca9bcee49f.png

5.将代码上传到Github中,上传后的代码结构如图所示:

e0f18951fa6cb1f3d6876660946b99c2.png

6.打开项目的Github主页,创建一个Release或Tag,如图所示:

8e23f2a510ca59537d16df969a02cc32.png

7.打开JitPack官网, 在输入框中输入Github项目主页地址,点击Look up按钮,就可将上传好的代码发布到JitPack上面去:

eb0023b046ad54aaa108b60ee6f5ed64.png

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。

aaccb701b735c88a45c2c7819bc4647c.png

这样子,一个单模块的公共库就已经发布了。

多模块的项目(Multi-module)

当公共库中有多个模块的时候,甚至模块之间有相互依赖的情况,是否可以继续使用JitPack来进行管理呢? 答案当然是是的。下面我们将一步一步来构建多模块项目的管理。

1.在项目中继续新增一个另外的模块,项目目录如下所示:

88df21143d2faf0fd8ba1bce5b0666e0.png

2.与单模块的第三部操作一样,在新添加的模块的build.gradle文件,在顶部添加如下代码:

// JitPack Maven

apply plugin: 'com.github.dcendents.android-maven'

// Your Group

group='com.github.username'

3.将新修改的代码上传到Github中,并按照单模块操作的第六步一样,创建一个Release或Tag:

fa1733cc6d7c1c75d5a3fd0b59068b99.png

4.继续按照单模块操作的第七步一样,打开JitPack官网, 在输入框中输入Github项目主页地址,点击Look up按钮,就可将上传好的代码发布到JitPack上面去,可以看到新发布的版本已经出来了:

765ef60a39f893bcf7b7e02a7f28d58b.png

打开打包日志可以看到我们新增加的模块已经打包成aar格式的包了:

8dbab3c6c7b39204e2ab93547b72537b.png

可以看到新发布的包的依赖格式已经改变了,由原来的'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:

c9e0f70f494b7e84217be71fb59345e3.png

然后重复第四步的操作,继续打开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包。经过测试多次,仍然有一些问题无法解决,期待有人研究出解决方案。

有更多问题或者好的方法可以在我的或者博瑞立方终端组中进行留言交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac android 手机连接打印机,为什么苹果电脑连接打印机打不出来怎么办

1. 为什么苹果笔记本连接打印机打印不了1、您的 Wi-Fi 或本地网络上的 AirPrint 打印机。2、临近的 Wi-Fi 打印机或位于您本地网络且支持 Bonjour 的基于有线网络的打印机。3、连接到家庭网络中 Time Capsule 或 AirPort 基站的 USB 端口的打印机。4、与家庭网络中的其他 Mac 共…

华为正式官宣鸿蒙OS,华为正式官宣,鸿蒙OS 2.0系统即将问世,Mate 40有望首发

由于华为5G技能取得了突破性的领先,美国对其采取了实体清单操持。意图干涉华为的发展速率,但实际上对于华为影响最大的却是软件方面的“断供”。在美国发布实体清单短短数月之后,谷歌公布停止对于华为手机系统的GMS服务授权。间接导致了华为手…

笔记本html连接电视机,详细教您笔记本连接电视

很多时候我们想要通过电视机来在线看电影,而苦于笔记本的屏幕尺寸太小了,心想着要是笔记本能连接上电视该有多好。其实现在的电视提供了很多连接电脑的功能,简单操作一下就可以实现,那笔记本怎么连接电视呢?下面一起来…

计算机网络静态路由大作业 3地互联,计算机网络-静态路由配置

计算机网络综合实习三:路由器基本配置一、实验目的通过实验掌握利用路由器实现网络互联的一般方法,掌握基本的路由器配置命令。二、实验原理不同的计算机网络在技术和工作方式上的差异,是需要进行网络互联的基本原因。在现实的应用中&#xf…

台式机没有显示计算机图标,为什么台式电脑没有喇叭图标

使用电脑的过程中,有时候会遇到电脑的音量图标突然不见的情况,怎么办?下面是学习啦小编为大家整理的关于台式电脑没声音图标的相关资料,希望对您有所帮助!台式电脑没声音图标的解决方法首先点击“开始”按钮,找到“控制面板”选项…

计算机培训开场语,辅导班家长会主持词开场白

【仅供学习参考,切勿通篇使用!】等孩子长大了,再想好好教育就没有机会了。这时候前人的方法和经验就显得尤其重要了下面是由76范文网小编为大家整理的“辅导班家长会主持词开场白”,仅供参考,欢迎大家阅读。辅导班家长…

计算机语言由低到高就被分为了什么阶段,2004年4月高等教育自学考试认知心理试题...

第一部分 选择题 (共30分)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.“望梅止渴”从反射论的观点来分析,是(…

ROCKOUT软件测试工程师,具透丨这才是让 iMessage 变得好玩有用的原因:iMessage App Store 详解...

关于栏目苹果、谷歌每年一次大更新的新系统都值得关注,我们始终不建议普通用户提前尝鲜稳定性不佳的测试版,但我们理解想要尝鲜的心情,于是有了「具透」这个栏目。「具透」会挖掘、详解新系统的各个功能细节,并会以长期更新形式&a…

计算机不能辨别汉字wifi,Win10系统连接不上被隐藏的中文Wifi的解决方法

Window10正式版系统 添加了不少新功能,给用户带来了不错的体验。不过,win10系统也有一些不足的地方,比如用户反馈自己的电脑总是无法连接隐身的中文Wifi,这该怎么办呢?接下来,小编就为大家分享下具体解决方…

联想服务器硬盘启动设置方法,教你联想台式机bios设定硬盘启动方法

现在好多家庭的台式电脑使用的都是联想的,不少朋友想用u盘装系统,但是不知道联想台式机bios设定硬盘启动的方式,别着急,今天小编就来分享联想台式机bios设定硬盘启动的方式。当手机出现死机或关机等故障造成手机能够开启平台的之后…

项目七samba服务器,Centos 7 配置Samba服务器

Centos 7配置Samba服务器1、Centos 7版本,内核: Linux 3.10.0-514.el7.x86_64[roottommy /]# hostnamectl #查看版本号Operating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-514.el7.x86_64Architecture: x…

服务器nasjava文件共享,办公室文件共享之如何搭建共享服务器或文件共享服务器nas?...

当前,企事业单位局域网中,经常会有一些文件需要共享给局域网用户访问。而文件共享的实现,一方面可以借助于Windows Server 文件服务器来实现;另一方面也可以借助NAS存储来实现。由于采用Windows文件服务器的设置比较普遍&#xff…

6s有时有信号 有时无服务器,揭秘:iPhone 6S 的没信号没网络维修故障分析

原标题:揭秘:iPhone 6S 的没信号没网络维修故障分析文/维修狮 (FIXHOME)手机不入网(没信号)是一个常见的多发故障(占手机故障的40%以上),对于手机出现不入网(没信号)故障我们首先要区分是接收部份还是发射部份的原因造成的,搞清楚后才可“对症下药”。一…

征途2无法显示服务器列表,解决win10系统玩征途2提示“DriverCommlnit驱动加载失败”的方法...

征途2是一款众所周知的角色扮演类游戏,它在玩法上延续了征途1的总体风格,但是在画面和音效上比征途1的要提高了很多,其独特的玩法吸引了众多的玩家。但是又部分用户反映,在win10系统上运行征途2的游戏时,出现了“Drive…

kafka服务器死机消息,当kafka集群其中一台宕机后,会怎么样?

一、介绍我们搭建好kafka集群后,对其进行性能测试。遇到这种场景:我搭建好了三台kakfa集群,然后停掉其中一台kafka,然后集群是否能正常工作呢?kafka集群:192.168.183.53 节点1192.168.183.55 节点2192.168.…

DEEPIN教程 - 本地安装Typora

本地安装Typora 一. 下载Typora安装包 访问https://www.typora.io/#linux路径进行下载。 二. 解压下载的tar.gz文件 tar -xvf Typora-linux-x64.tar.gz三. 将解压后的可执行文件添加到dash路径 1. 首先在解压路径下需要关注如下路径文件。 可执行文件Typora 和 2. 文件夹i…

[Deepin - Pycharm] PyQT5安装配置

[Deepin - Pycharm] PyQT5安装配置 1.环境依赖 python3基础环境, pip下载器 pycharm编辑器 2. 从系统环境中安装pyqt5, qtdesigner >>> pip install pyqt5 >>> sudo apt-get install pyqt5* >>> sudo apt-get install qt5-default …

Python学习笔记(5):Python如何忽略warning的输出

告警现象 形如下图文的告警信息都可以使用告警屏蔽 添加代码 源代码添加 import warnings warnings.filterwarnings("ignore")命令行执行 python -W ignore file.py可以避免warnings输出影响我们调试,但是不要盲目设置取消输出。因为告警内容可能包…

ffmpeg下载安装 多段ts视频m3u8下载

如何下载多段ts视频 m3u8 ffmpeg ffmpeg使用教程 下载 Windows下载方法 step1. 官网下载地址 点此进入下载地址 step2. 选择 Windows EXE files 中的Windows builds by BtbN 这会跳转到github页面中。 step3. 选择对应的linux平台或者windows平台进行下载 安装 step1.…

linux环境下安装多个任意版本的python环境

linux环境下安装多个任意版本的python环境 安装方法可以归结为 [下载 编译 配置环境变量] 下载Python 参考链接: .任意python版本下载,所有python版本下载的FTP路径 Windows下载发送到linux上 step1. 下载linux版本的python 从Python官网进入 选择…