这应该是最全的Jenkins Android自动打包构建教程了
环境搭建
- JDK下载与配置环境变量
- SDK下载与配置环境变量
- GIT下载与配置环境变量
- Jenkins下载与安装。
本篇着重讲如何配置Jenkins,前三个配置就不一一赘述,详情请百度。
搭建步骤
检查环境变量是否都配置正确。
1.环境变量检查
win运行cmd
,输入
java -version
查看是否输出java version,如果输出成功则证明配置JDK正确。
win运行cmd
,输入
adb start-server
查看是否成功启动adb server,如果成功则证明SDK配成功
win运行cmd
,输入
git
如果出现git usage说明则证明配置成功
2. 解压工具包,按照向导安装Jenkins。安装向导推荐的插件。插件安装完在已安装的列表中查看是否已经安装了Android Lint Plugin,Gradle Plugin,
Git plugin插件。
3. 配置Jenkins的全局工具配置
- 进入jenkin首页,如下图,点击系系统管理。

找到全局工具配置

4. 配置JDK

5. git配置

6. gradle配置

注意:此处配置的gradle版本必须与所构建的项目一致。另外路径不能过长,否则后面编译会导致AAPT的错误(建议将对应版本gradle移动到某个盘的根目录中,或者直接使用项目自带的gradle在编译时进行下载)。
7. 配置全局的SDK路径如下图
左边找到系统管理,然后点击下图所示的系统设置

找到环境变量配置,添加Android Sdk的配置,==路径需要改为自己的SDK路径==

环境变量到这里就配置完毕了。
新建无参数任务
1. 新建任务

2. 添加描述,点击高级设置配置工作区

3. 配置代码git仓库

4. 配置构建

配置GradleWrapper

配置root build script 路径

5. 点击保存应用。
6. 点击立即构建,就可以完成自动打包的任务。
新建带参数任务
1. 和无参任务一样先创建一个自由风格的构建项目
2. 选择参数化构建过程

3. 构建参数,与build.gradle中获取的方式。

如上图,以选项参数以及文本参数为例。在Jenkins中定义的参数可以使用"${parameterName}",例如Jenkins选择分支时就可以使用此参数:

在Andrid项目中如何获取对应的参数呢?因为Jenkins打包时会把参数侵入到项目中,在app包名下的build.gradle中可以这样获取上述的JAR_VERSION_NAME
:
def defaultName = "2.04.11"
def jarVersionName = project.hasProperty('JAR_VERSION_NAME') ? JAR_VERSION_NAME : defaultName
注意:boolean参数使用选项参数来代替,在gradle3.3版本中运行时此参数会获取不准确。
def needNewsSdk = project.hasProperty('NEED_NEWS_SDK') ? NEED_NEWS_SDK : "false"
boolean isNeedNewsSdk = needNewsSdk == "true"
4. 其它过程同无参数任务一致,在执行Gradle脚本时需要将参数带到命令中。
clean
assembleRelease -PJAR_VERSION_NAME=${JAR_VERSION_NAME} }
注意:参数名使用-P
来开头,P
为大写
构建完后构建其它项目,且带有参数。
- 需要安装插件
Parameterized Trigger plugin
,在系统管理-插件管理-可安装选项里面检索此插件安装并重启Jenkins(重启方法在Jenkins后面地址后面加上/restart
) - 在构建或者构建后操作选项里面(因Jenkins版本不同,此插件的位置也不同)找到:

填入要构建的下个项目名,并添加参数,可以选择当前任务的参数如上图。
最后
如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
转发+点赞+关注,第一时间获取最新知识点
Android架构师之路很漫长,一起共勉吧!
以下墙裂推荐阅读!!!
- Android学习笔记参考(敲黑板!!)
- “寒冬未过”,阿里P9架构分享Android必备技术点,让你offer拿到手软!
- 毕业3年,我是如何从年薪10W的拖拽工程师成为30W资深Android开发者!
- 腾讯T3大牛带你了解 2019 Android开发趋势及必备技术点!
- 八年Android开发,从码农到架构师分享我的技术成长之路,共勉!
最后祝大家生活愉快~
