Jenkins+Gradle实现android开发持续集成、打包

android开发之Jenkins+Gradle实现android开发持续集成、多渠道打包 懒惰,只是为了更好的懒惰! 阅读详情

实际工作中,很多时候我们需要持续打包,或者出现某个问题后,我们需要追溯到某一个历史版本去做对照,如果手动去做这些操作的话,无疑会耽误很多时间,直接压缩了下班回家陪老婆孩子的时间,所以我们需要一个能够自动化构建项目的工具。

在这里,我们选择了Jenkins。老规矩,先来看看完成后的实际际功能与使用效果
这里写图片描述
首先搭建成功以后,我们可以通过web的形式来完成所有的操作。登录首页后,可以看到当前所有使用Jenkins构建的项目,每个项目最左侧的S栏使用小球通过颜色来区分不同的状态(蓝色为正常,红色为编译失败,灰色为正在编译中),W栏以天气的形式来描述最近五次的编译情况。

选择某一个项目进去以后,看到下面的页面:
这里写图片描述
简洁的页面中很直观的可以看到两个编译成功的apk,这个地方与gradle中的buildTypes相对应,我们在每次的项目构建中,都可以得到对应的apk,适应于不同的场景。

在左侧的Build History栏中,我们可以回溯到历次提交的状态。例如我们点击375,得到以下界面:
这里写图片描述

注意到有一个修改记录,这个与版本控制对应的提交相对应,可以更方便的看到这次的构建是基于哪个提交之上的。我们甚至可以点击detail查看该次提交做了哪些文件的改动。

搭建环境(win)

Mac版搭建传送门

下载最新安装版jenkins http://mirrors.jenkins-ci.org/windows/latest。
注:笔者使用的是Jenkins 2.5。
(如果不能安装,从http://mirrors.jenkins-ci.org/war/latest/jenkins.war下载war包,手动配置,配置说明参见https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins)。

1.安装
使用安装包直接安装,安装后系统会创建了一个windows服务:Jenkins,默认使用的端口是8080,如果需要修改,打开安装目录下的jenkins.xml文件,修改

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>

后保存,启动jenkins服务。
打开http://localhost:8080/,按照提示输入C:\Program Files (x86)\Jenkins\secrets下的密码,安装好插件后,看到类似下面的界面(我这里已经创建了一个任务):
这里写图片描述
说明jenkins已经安装成功。

2.创建任务

2.1 点“新建”,界面如下:
这里写图片描述
Jenkins工具在多次更新迭代后,配置已经越来越人性化,直接输入项目名称,选择第一项即可。
2.3 界面如下:
这里写图片描述

源代码管理根据自己的需要进行选择,我的源代码是使用svn管理的,这里选择“Subversion Modules”,在”Repository URL”录入你的svn仓库地址;第一次录入时还需要录入svn仓库的用户名和口令。
刚才的那个界面比较大,向下滚动,中间部分的界面如下:

构建触发器
构建触发器:如图
日程

触发器支持多种类型,常用的有:

定期进行构建(Build periodically)
根据提交进行构建(Build when a change is pushed to GitHub)
定期检测代码更新,如有更新则进行构建(Poll SCM)
构建触发器的选择为复合选项,若选择多种类型,则任一类型满足构建条件时就会执行构建工作。如果所有类型都不选择,则该Jenkins Job不执行自动构建,但可通过手动点击【Build Now】触发构建。

这里我选Poll SCM,数值设定为H/5 H(9-23) * * *

关于定时器(Schedule)的格式,简述如下:

MINUTE HOUR DOM MONTH DOW

MINUTE: Minutes within the hour (0-59)
HOUR: The hour of the day (0-23)
DOM: The day of the month (1-31)
MONTH: The month (1-12)
DOW: The day of the week (0-7) where 0 and 7 are Sunday.
通常情况下需要指定多个值,这时可以采用如下operator(优先级从上到下):

适配所有有效的值,若不指定某一项,则以占位;
M-N适配值域范围,例如7-9代表7/8/9均满足;
M-N/X或*/X:以X作为间隔;
A,B,C:枚举多个值。
另外,为了避免多个任务在同一时刻同时触发构建,在指定时间段时可以配合使用H字符。添加H字符后,Jenkins会在指定时间段内随机选择一个时间点作为起始时刻,然后加上设定的时间间隔,计算得到后续的时间点。直到下一个周期时,Jenkins又会重新随机选择一个时间点作为起始时刻,依次类推。

为了便于理解,列举几个示例:

H/15 * * * *:代表每隔15分钟,并且开始时间不确定,这个小时可能是:07,:22,:37,:52,下一个小时就可能是:03,:18,:33,:48;
H(0-29)/10 * * * *:代表前半小时内每隔10分钟,并且开始时间不确定,这个小时可能是:04,:14,:24,下一个小时就可能是:09,:19,:29;
H 23 * * 1-5:工作日每晚23:00至23:59之间的某一时刻;
H/5 H/(9-23) * * * 表示每天9点到23点,每5分钟检查一次。

构建:添加Invoke Gradle script,配置如图
这里写图片描述
(如果没有Invoke Gradle script选项,需要跳到插件管理中下载Gradle plugin)
Switches :即gradle 后面所接的命令。上面相当于执行gradle clean build命令。

构建后操作:构建失败可以发送邮件通知,如图
这里写图片描述

Jenkins+Gradle实现android开发持续集成问题汇总 阅读详情

相关推荐

使用Jenkins搭建iOS/Android持续集成打包平台

 背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包。而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品、运营、测试等人员)通过手机扫描二维码后就能直接安装测试包。 该需求具有一定的普遍性,基本上所有开发APP的团队都可能会用到,因此我将整个需求实现的过程整理后形成此文,并且真正地做到了零基础上手,到手即飞

GY的的专栏 2162

Docker-Jenkins编译android-app的两种方案

android开发使用jenkins编译,自动集成修改点/自动命名/自动备份,将修改的apk发布到测试服务器+发布网盘,而不需要用通讯工具传来传去。 jenkins用在互联网开发编译比较常见,如果android开发也想用,该怎么设计呢?

dengtonglong的专栏 1158

Jenkins+Gradle自动构建打包Android工程教程

使用Jenkins搭建自动构建平台,自动打包AndroidStudio工程,使用Gradle构建。代码来源git

【Android】Android Studio打包APK、精简APK大小与规范处理详解

Android Studio中运行程序默认都是debug版本,而想要在别人手机上安装应用,就需要把App打包成APK文件(release版本)。

qq_52924376的博客 2万+

【Python&RS】哨兵2号(Sentinel2)轨道条带说明+图幅统计(表格+矢量)

今天给大家带来哨兵2号的图幅编号介绍以及全国省、市所需图幅数的统计。网上教程极少,而且结果也不公开。因为每次下载的时候都不知道需要几幅,所以研究后给大家分享一下。

Remote Sensing迷途小书童 1679

汇川伺服驱动器参数优化实战指南

本文详细介绍了汇川伺服驱动器参数优化的实战技巧,涵盖控制模式选择、电子齿轮比调整、刚性匹配与振动抑制等关键内容。通过实际案例和实用技巧,帮助工程师快速掌握伺服驱动器参数调校方法,提升设备运行精度和稳定性。特别针对高精度定位和高速响应场景提供了专业指导。

weixin_29070721的博客 734

安卓打包流程一篇文章就够了

本文会带你深入了解安卓打包流程的各个细节。更重要的是,熟悉安卓打包流程会让你对apk瘦身、参数化构建、资源文件处理有更深的理解。

lotty_wh的博客 6290

初识数据结构之入门必懂——线性表(顺序表)

本文将介绍数据结构中的线性表与线性表中最简单的结构——顺序表

m0_64705485的博客 904

Android开发之打包APK详解

Android开发之打包APK详解

不服输的小乌龟 1万+

认知建模:模拟人类决策过程的AI方法

认知建模的目的在于构建能够模拟人类认知和决策过程的模型,通过AI技术将人类的思维、判断和选择等过程以数字化的形式呈现出来。其范围涵盖了多个领域,包括心理学、人工智能、经济学、管理学等。在心理学领域,认知建模可以帮助研究人员更好地理解人类的认知机制;在人工智能领域,可用于开发具有更智能决策能力的系统;在经济学和管理学中,能辅助进行市场预测、战略规划等决策制定。本文首先介绍认知建模的背景知识,让读者对该领域有初步的了解。接着阐述核心概念和它们之间的联系,通过示意图和流程图直观展示。

AI 算法实战派 1165

Python赋能,洞见先机:构建基于异步爬虫与流处理的实时舆情监控系统

我们将从核心概念入手,逐步搭建一个集。.option("es.resource", "public-opinion-%s" % time.strftime("%Y-%m-%d")) \ # 按日期分索引。| 数据采集层 |----->| 消息队列层 |----->| 流处理与分析层 |----->| 存储与可视化层 |:使用Spark Streaming的状态操作或Flink的CEP库,检测更复杂的模式,如“某关键词的负面舆情在1小时内激增500%”。

2201_76125261的博客 434

Jenkins+Gradle实现android开发持续集成和打包

1、Jenkins gradle插件安装 系统管理>管理插件>可选插件 选中Jenkins Gradle plugin插件安装重启即可。 安装慢的话,可以把插件下载下来,手动上传插件或设置代理。如图 2、Jenkins新建任务 2.1 配置基本信息 点击新Job,输入任务名称选中构建一个自由风格的软件项目,点击OK,跳到配置页面 2.2 配置源码管理 ...

weixin_33845881的博客 136

如何调试10G/25G以太网IP自协商/Link Training

如果是40G/50G, 100G以太网,选的是多通道的IP,务必保证两端的通道0是正确对接上的,因为在做自协商的时候,以太网只使用通道0,其它通道需在自协商完成后再加入工作。b. 自协商的工作完全由IP自动完成的,所以只要配置没问题,你只需要耐心等待就可以看到自协商的完成,以an_good_check为标志,并且进入下一步linktraining。c. 在LT的过程中,首先你要等到IP能够锁定LT帧,即frame_lock拉高,然后你就可以进行你自己的LT算法了,与AN不同LT是由客户手动完成的。

qq_43416206的博客 1509

转: Jenkins+Gradle实现android开发持续集成、打包

http://my.oschina.net/uboluo/blog/157483  

weixin_33811539的博客 126

【深度学习】什么是自回归模型?

自回归模型是一种重要的时间序列模型,通过利用过去的值来预测当前或未来的值。它在统计学、经济学、自然语言处理等领域有广泛的应用。自回归模型的简单性和可解释性使其成为许多应用的首选,但在更复杂的情况下,可能需要结合其他模型如移动平均模型(MA模型)或混合模型(如ARIMA)来更好地捕捉时间序列中的模式。扩散模型(Diffusion Model)和自回归模型(Autoregressive Model)是两种不同的生成模型,各自有独特的特点和应用场景。

q742971636的博客 1670

基于ZYNQ PL的AD7606数据采集与FFT实时频谱分析:从硬件到创新实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKnmpgJm-1750295287594)(https://example.com/fft_plot.png)]本文涉及代码已在Xilinx ZCU102开发板与AD7606评估板上验证通过,采样率支持200KSPS@8通道,FFT计算延迟<1ms。传统MCU+DSP方案难以兼顾速度与功耗,而ZYNQ的PL+PS架构为这一问题提供了完美解决方案。本文实现的ZYNQ PL方案突破了传统处理器的性能瓶颈,通过。

QQ_778132974的博客 338

Jenkins+Gradle实现自动化Android打包、输出APK到指定路径

Jenkins+Gradle实现自动化Android打包、输出APK到指定路径,有需要的朋友可以参考下。 关于 Jenkins+Gradle实现android开发持续集成、打包 的教程可参考:http://blog.youkuaiyun.com/xiongmc/article/details/26515577 Jenkins的四点强调 环境配置:JAVA_HOME、GRADLE_HOME必须

xpzhang123的专栏 3441

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jenkins+gitlab实现Android自动打包填坑之旅

1.首先你需要知道你想要实现的Android自动打包的Android项目的一些环境配置及需要使用的一些开发版本。声明:本文 Android项目基于:1.jdk11 2.SDK无要求 3.gradle无要求(同Manven一样为项目自动化构建开源工具)注:本文适用于 任何版本 jdk SDK Gradle。了解Android项目使用到的东西就可以开始干活了.......... xixi。

weixin_54401017的博客 2264

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用Jenkins进行Android自动打包

之前App在提交测试和最终部署的过程中App打包一直是由开发人员来完成的,由于项目比较大, 再加上Android打包本身就比较慢,所以每次打包还是很耗时的。并且按照严格的研发流程来讲,开发人员应该只负责提交代码,测试和部署过程中的打包都不应该由开发人员来完成,所以我就想着给测试和运维人员搭建一个可以自动打包的环境。后来在网上看到很多网友分享使用Jenkins进行Android自动打包的文章,几经尝试

dmx的专栏 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: Android资源混淆打包工具 - 让你的资源瘦瘦身
下一篇: 图文比较八种排序算法
byszy
博客等级 码龄17年 42粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值