android stduio多项目依赖的git版本控制+jenkins自动构建

Android动态切换本地源码依赖与maven依赖 不管项目架构是组件化、模块化等,我们一般都会把一些基础库放在一个单独工程B中,通过maven或是打包aar的方式集成到主工程项目A中。然而当解决问题需要添加Log日志或是修改基础库时,我们只能在B中进行修改,通过maven或是打包aar集成到A中进行验证。如果验证还有问题,重复操作。这个时候我们就会想如果直接依赖基础库源码的话就很方便,验证成功之后再上传maven或是打包aar。这篇文档为了记录动态切换本地源码依赖与maven依赖,也就是通过变量控制是否依赖基础库源码还是依赖aar包。 阅读详情

我们所建立的项目,无论是出于业务逻辑和数据逻辑处理分离的原因,还是因为各模块想要更低耦合的模块化,一般而言,我们都会建立多个工程,然后利用库工程依赖的形式来组建我们的项目。比如我们Android就很经常用的,把一些公共部分的代码,不涉及业务的代码抽出来,单独建一个library工程来放置,然后让我们的业务工程来引用它。

在利用eclipse+svn的时候,实现起来是比较简单的。基本把两个工程扔到svn上,然后利用eclipse把两个工程的依赖关系依赖好就可以了。

在这里我们说的是Android studio+git的形式。

有两种实现方式:

第一种跟eclipse+svn差不多,但不能直接利用ide来实现,要修改部分编译脚本代码。

假如现在是只有一个业务工程和多个library工程。

第一步先建立两个git代码仓库,无论是oschina还是github,或者其他的远程代码仓库,都可以,其中一个放置业务工程,另外一个放置library工程,这里可以实质可以放置多个library工程,用个文件夹装着,一起上传就行了。(把那些如build的乱七八糟的文件去掉再上传)

然后分别把代码下下来,随便找地方路径放置,然后打开业务工程的setting.gradle进行修改编译脚本,手动把几个library工程包以module的方式引入进来。

如我以下的这个例子,我有一个业务工程,里面仅仅包含一个app module这个业务module。几个library工程被引用。

具体如下:

接下来分别看看两个目录下的文件:

然后打开业务工程下的setting.gradle文件进行如下的路径设置即可。



第二种是利用git submodle。

这一种的话,主要就是对git的使用,可以参考这位大哥的http://www.tuicool.com/articles/jqiEJzU

基本对着敲一遍都会了,不过这种方式有个缺点,每一个library工程都得对应一个git代码仓库,特别是现在很多第三方越来越坑爹的也要采用这种module的形式作为SDK的时候,这样就得建挺多个git代码仓库了,这就比较尴尬了。


下面是对应的Jenkins打包:


因为这部分使用git版本控制,gradle编译的Android工程Jenkins打包网上太多资料了,这里就大概说说对应的思路。

我这里的采取的是第一种方式,所以我的方式是在Jenkins上建立两个job,一个是对应library git代码仓库的(下面简称library job),一个是对应业务工程 git代码仓库的(下面简称业务job)。

其中library job不做任何编译任务,就是负责更新最新的library代码以及启动业务job的编译(填完你的git地址就行了,其他什么都不用做)。

业务job除了要更新代码之外,还要进行对应的编译,以及目标版本的输出,同时设置业务job为library job的下游,这样library job更新完代码后就会自动启动业务job了。(业务job的话直接百度,太多资料了)

(这里要注意的是,git代码仓库上面业务job的setting.gradle的路径必须是你放置Jenkins那台电脑上对应的library路径,不确定的话,就去Jenkins对应的工作目录下面找找library的路径,而其他人下下来编辑代码的时候,改为自己本地的路径之后就不允许再上传这个文件到git 代码仓库了)








基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程.docx 查阅各个介绍Jenkins自动打包的网址,虽然都各有特色,但是按照介绍还是一路遇到很多处坑。经过整理,完成了相对较为准确的教程,如果对各位有帮助就给个好评。谢谢~~~话不多说,咱们开始!! 对于完全第一次接触Jenkins的小白来说,安装和部署Jenkins并不难,唯一相对较难的是gitlab的配置,以及gradle和android studio的配置。咱们一步步慢慢来。 立即下载

相关推荐

AndroidStudio,git,Jenkins安装使用说明文档

压缩包包含三个文档,分别介绍AndroidStudio的安装和一些配置;git的安装使用和一些基本命令;Jenkins的安装和使用Gradle进行自动构建。

代码迁移,合并双仓库

公司原有A服务,B服务等多个服务,现有以下问题,A服务为公共服务,多个服务均依赖于此,在新版本计划移除A服务,各个服务自己进行承接对应的接口迁移代码。以下是本篇文章正文内容,下面案例可供参考。

小阳同学的博客 1655

Jenkins搭建C++持续集成环境

本文主要介绍如何通过Jenkins搭建C++的持续集成环境。最后达到的效果是每天00:00- 08:00之间构建、测试和打包一次工程。开发环境为VS2015,测试工具为CppUnit,打包工具为InnoSetup。本例的Jenkins版本为Jenkins2.60.1 新建空白解决方案,命名为Calculator。勾选[新建GIT存储库]。

jenkins+grandle 打包android项目(多个git仓库)实例

@[TOC](jenkins+grandle 打包android项目(多个git仓库)实例) 一:项目描述 本android项目,依赖多项目 依赖插件 Multiple SCMs 二:安装插件Multiple SCMs 登录jenkins,在首页,点击左侧【系统管理】-【插件管理】-【可选插件】,搜索Multiple SCMs,安装,重启。 三:新建任务 在首页,点击左侧【新建任务】: 在新页面中...

皓阳当空-博客 1531

LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)

内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。

openclaw + ollama本地模型 + 飞书平台 windows平台部署教程

本教程将指导您在 Windows 10/11 环境下,通过 Ollama 运行本地模型,并结合 OpenClaw 接入飞书,搭建一个完全本地化的 AI 助手。

专注于技术研发行业技术主要有AI人工智能视觉识别、物联网技术、电商平台、app原生技术、微信小程序、鸿蒙语言开发、办公企业oa、ERP等,致力于做东半球最优秀的程序员 2172

Android两个项目整合成一个

需求 有两个项目A、B。两个项目相互独立,功能业务逻辑均不同。现在需要实现将两个项目整合成一个,打包出一个apk文件,安装也是只安装一个App的过程,展示上也是只展示为主项目A的App,通过主项目A的某个按钮跳转,启动项目B,然后执行项目B的业务逻辑。直到B项目退出,又回到A项目。 方案 将B项目设置成Library类型的项目。B项目右键–Buidle Path–Android 勾选 Is Li

vaecer 1万+

【数电课程设计】---出租车计价器

文章目录1、任务要求2、方案3、收获 1、任务要求 2、方案 3、收获

LZY 1万+

android 一份源码多个项目减少分支的一些小技巧

uboot kernel hal app

阿赞的专栏 412

PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】

最近,Proxmox VE 推出了基于 Debian 13 的 9.0 版本。正巧我手头有一台闲置的老电脑,与其闲置,不如装上 PVE,让它化身 All in One,继续发挥它的余热。G4560 算是一颗 NAS 神 U,十几元的售价就能有双核四线程,比起什么 J1900 不知道强到哪里去了,尽管定位上是奔腾处理器,但性能甚至能和同代的酷睿 i3-7100 掰掰手腕,并且它还自带 HD 610 的核显,对于解码的支持也还不错。

zc_mk的博客 7510

【5G】5G 核心网(5GC)基本架构

本文旨在科普5G核心网相关知识...

Learning makes me happy (0^◇^0) 4万+

jenkins+git+android studio自动化构建(持续集成)

  上一篇jenkins+svn+android studio自动化构建(持续集成)已经描述了jenkins环境的搭建,这里就不在继续描述了,简单的看一下与svn的差异在哪里   邮件主题中,svn版本号:${SVN_REVISION}<br/> 变成了 GIT版本号:${GIT_REVISION}<br/>      以下给出脚本,本来是想跟svn一样,版...

weixin_30675967的博客 162

LayaBox CommandBuffer描边使用详细

项目需要使用LayaBox做一个给3D物体动态描边的一个功能,前前后后踩了一些坑算是把这个东西给做出来了把我改好的代码贴上,分享给大家。 (1)想要使用描边你的引擎版本必须 >=2.9.0 (2)你必须下载 Laya官方的BlurShader库才能使用这个功能,下载地址:https://github.com/layabox/layaair-demo/tree/master/h5/3d/ts/LayaAir3D_PostProcess/BlurShader 下载完之后把BlurShader放到自己项目的

小智队长 1733

基于Jenkins+git+gradle的android持续集成

本文参考了: http://my.oschina.net/uboluo/blog/157483 http://java.dzone.com/articles/automating-continuous   以前都是通过IDE(eclipse or Android Studio)手动生成apk通过QQ或者邮件发送给测试人员进行测试,现在的司要求对项目进行持续集成,也就是说通过某种方式定时(比

2万+

VCS HVP与验证计划planner:数字IC验证环境搭建与收敛实践

在数字IC验证中,VCS 是广泛使用的编译型仿真器,HVP 通常指面向硬件验证平台的高性能编译选项集,用于开启 SystemVerilog 类、随机约束和 NTB 等能力;planner 则指验证计划管理,核心是把功能点与测试用例、覆盖点建立映射。理解 VCS 先编译后仿真的原理,有助于优化增量编译、调试访问和覆盖率采集,提升回归收敛效率。规划驱动让激励不再散落,设计改版时能快速定位受影响用例,交接和覆盖率收敛更有依据。无论是 UVM 环境搭建、编译参数选择,还是验证计划表维护,都需要把工具选项与规划方法结

weixin_42543046的博客 336

OpenClaw 运行时错误文档:Embedded Run Agent End with Stream Error(嵌入式运行代理结束流式错误)

OpenClaw运行时错误文档:EmbeddedRunAgentEndwithStreamError(OC-ERR-009) 该错误表示LLM提供商在流式传输过程中发生服务器端异常(HTTP 500),属于可恢复的中等严重性错误。典型表现为日志中出现包含"stream_error"和500状态码的错误信息。系统会自动进行错误分类(50%为服务过载,25%网络问题等),并通过内置机制尝试解决:包括模型切换、API密钥轮换和自动重试策略。用户可采取重试请求、切换模型或简化请求内容等操作,管理

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 550

Jenkins不同job之间依赖关系的两种配置方式

项目之间总有依赖,比如A Job执行完执行B Job,如下图所示,如何建立依赖呢? 配置上游我们通常喜欢配置上游依赖,在B中配置 配置如下信息。选择在其他项目构建完成后进行构建: Project to watch:依赖的项目名称 Trigger only if build is stable:只有在A项目构建文档后进行构建,过滤条件。这样我们执行A项目构建,紧接着B项目也会构建。配置下游

doctorq 3万+

从HCI层浅析LE Audio通话建立流程

本文分析了BLE AUDIO通话协议建立的全过程。当手机来电时,系统会通过CCP EATT链路通知耳机准备通话,并断开原有音乐CIS连接。随后建立通话专用的CIG组,其参数设置(如MAX SDU SIZE=80、RTN=2)与音乐场景明显不同,更注重通话的实时性。文中详细描述了设置ISO数据路径、启用ASE、建立CIS连接等关键步骤,特别指出通话采用Conversational音频上下文类型。最后解析了ISO数据包参数含义,展示了10ms周期、32kHz采样率等通话特性参数。整个过程体现了BLE AUDIO

十多年蓝牙协议软件开发,擅长蓝牙协议分析 1860

Android Jenkins+Git+Gradle持续集成打包

在项目的上个版本,老大说将Android打包搞到服务器上,让所有人都可以享受打包的乐趣,接着就有了这篇文章~Jenkins自动打包,已经用了一段时间了,奈何前段时间陷入了王者峡谷,所以一直懒得写文章,现在终于找回状态,开撸。虽然Jenkins的文章又很多,但我觉得这篇会给你几乎所有想要的。 我用的是Jenkins+Git+Gradle实现自动打包 安装 上来就是干的,首先到Jenkins

clwwlc的专栏 2034

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Jenkins中使用Git和Maven之多个项目

1.应用Aggregation管理多个子项目 Maven中有一个Aggregation(聚合),可以将多个项目作为模块添加到一个pom.xml中,然后告诉Jenkins这个顶层pom.xml,就可以自动从Git中拿出这些项目的源代码,并build所有的子项目和运行相应的测试程序。我这里使用的是TestNG。 比如我有两个maven项目client和email_sender,我希望一次编译并测试,在...

ribishuangba 781

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Jenkins+Gradle+Git+Centos 实现android持续集成、打包(超详细)

Jenkins+Gradle+Git+Centos 实现android持续集成、打包(超详细)

swebin的专栏 3257

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jenkins构建maven项目:找不到依赖库的解决办法

Could not resolve dependencies for project 在使用jenkins构建maven项目时,会遇到以上问题。首先我们先看看上述问题产生的原因: 直接从打印的日志看是找不到指定的依赖库,也就是在https://repo.maven.apache.org/maven2 仓库中找不到sqljdbc4:jar:4.0等jar包,因此编译不通过导致编译失败。

qq_28719059的博客 1万+

jenkins构建一直报错maven找不到依赖关系项目

搭建的私服,nexus,里面有相关的依赖包但是构建的时候报如下错误:原因是:jenkins使用的maven配置文件不是包含私服配置项的配置文件解决方案:在jenkins配置里面重新配置maven配置文件路径...

天涯的浪子 1万+

Android一个项目多个module远程仓库,Git checkout Brances关联同步切换

1.Flie -->Setting-->Version Control-->点击添加-->选择项目所在路径-->vcs选对应方式-->apply 注意事项:假如有其他模块已经切换过分支,需要删除,保持所有module只有一个相同分支,然后,就可以切换任意分支保持同步。(对于项目运行过,切换分支出现爆红,需要clean解决) ...

非鱼博客 755
上一篇: Android 可横竖滑动的双向表格
jian_code
博客等级 码龄10年 4粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值