一、Tomcat和Jenkins下载安装
1. 下载Tomcat:

下载完成后解压到指定目录下,然后命名为Tomcat,启动Tomcat 打开终端,切换到Tomcat/bin目录下,然后输入:./startup.sh 回车,或者Windows下双击startup.bat, 就可以启动我们的Tomcat了打开浏览器输入http://localhost:8080/,如果出现一只猫,则证明配置成功.
2. 安装Jenkins:

将下载的Jenkins.war包直接放到tomcat下的webapps目录
启动tomcat
然后打开http://localhost:8080/jenkins
然后就是一系列的安装过程,默认即可。。。加载的一些插件可以根据自己的需要选择,或者选择推荐的插件安装
可能遇到的问题:打开http://localhost:8080/jenkins报404错误,可能tomcat没启动,或者下载的Jenkins.war是坏的,重新下载即可.
3. 首次打开Jenkins,会提示安装所需的插件:

除默认插件, 还有其他一些插件推荐:

[图片上传中...(system_config_2.png-1414fb-1527336684558-0)]
注意:在首次进入Jenkins并设置admin管理员账号后, 要立即修改admin密码, 否则下次登录登录不了.
二、系统管理-系统设置:
1. Jenkins空间目录结构

说明:
(1)主目录即安装Jenkins自动生成的Jenkins所有配置,工程,插件,日志等存放的目录, 一般在当前用户下创建;
(2)工作空间根目录,即所创建的Job从svn或者git等拉到本地的代码存放的目录,即 下图红框2;
(3)构建记录根目录,即创建的Job构建的日志记录以及配置项所存放的目录,即 下图红框1.
system_config_1.png
2. 全局属性配置
在这里配置全局都可用的属性, 例如系统JDK, SDK,NDK, Python等环境变量(如果Jenkins所在的系统有配置对应的环境变量到系统path里,那么这些都可以不用配, 如果没有配置,则可以在这里配置好, 否则在编译时会提示找不到对应需要的库.), 例如下面配置了Python路径的环境变量.

3. 配置源码服务器
这里我用的是gitlab托管我的代码,所以配置对应的gitlab即可, 也可以不配置, 在具体Job里去配置也可以, 例如我这里就没有配置.其他代码托管平台类似.

4. 配置邮箱服务器, 首先需要添加Email Extension Plugin插件, 然后就会出现下面的配置项:
(1) 配置系统管理员邮箱, 这里配置你的邮箱地址:
(2) 配置(1)设置的系统邮箱地址用户名密码等.

5. 配置自动将安装包上传到ftp服务器
需要安装Publish over FTP插件, 然后就会出现下面的配置项,逐项配置即可:

三、新创建并配置Job
1. 在Jenkins首页点击新建:

2. 配置参数化构建过程:

3. 配置主工程源码及依赖工程源码
因为我们项目工程结构比较特殊, 依赖module并不包含在主工程目录里, 而是与主工程目录平级的, 所以采用了Multiple SCMs, 并且配合动态替换setting.gradle的方式,达到正确引入module依赖的目的.
下载好Multiple SCMs插件后, 就会出现下面的"Multiple SCMs"选项, 如下图配置:

在module下选择'Add', 选择 'check out to a sub-directory',配置本地目录module根目录名.

这里说明一下,其实我们的代码会从服务端拉取到本地, 并在本地生成对应的目录,这个目录就是上面所说的'workspace'目录里, 然后具体构建的时候就对本地代码进行的编译构建.
4. 构建环境
需要下载build-name-setter插件,才会出现 Set Build Name这个选项.

5.构建配置
注意下面的各个子项是可以长按拖动位置位置的,具体位置如何, 要根据是需要在开始构建前做一些操作还是在开始构建后, 比如说下面的copy命令,就是因为我们需要在开始构建前,完成setting.gradle的替换操作, 所以位置前移到了构建开始前.
如果是Windows系统,则选择'Execute Windows batch command',并输入如下命令:
copy /y %WORKSPACE%\settings_copy.gradle %WORKSPACE%\settings.gradle
如果是Linux或者Mac系统, 则选择'Execute shell', 并输入如下命令:
\cp -rf $WORKSPACE/settings_copy.gradle $WORKSPACE/settings.gradle

注意到上面有一个Python命令, 用于生成下载二维码用的,在这之前, 需要先去github上下载qrcode-master到本地, 然后再本地磁盘上指定一个目录存放二维码图片,例如上面的download目录, 那么如何将Tomcat与这个目录联系起来呢? 需要做如下操作:
其中E:\download是硬盘上创建的保存路径,需要在\Tomcat\conf\Catalina\localhost里创建一个download.xml文件,并映射该路径: <?xml version="1.0" encoding="UTF-8"?> <Context path="/download" docBase="E://download" crossContext="true"> </Context>
这样执行上面的Python命令就可以生成对应的apk包的二维码了, 如果是Linux系统,也是类似的, 具体不详细说.
6. 构建后操作:

<img src='http://localhost:8080/download/qrcode.png' width=200px height=200px> </img> <a href='http://localhost:8080/jenkins/job/job名/lastSuccessfulBuild/artifact/app/build/outputs/apk/app-develop-debug.apk'>下载连接</a>
邮箱配置里的环境变量均已在全局系统配置里声明了, 否则也可以直接在这里写.
参考文献:
Jenkins+Tomcat + Gradle + Tinker + Walle + 360加固 + fir.im 持续集成,自动构建
移动测试基础 使用 Jenkins 搭建 iOS/Android 持续集成打包平台 (开箱即用)
Jenkins进阶系列之——04Publish Over FTP Plugin插件
Jenkins+Gradle实现android开发持续集成问题汇总
Android Jenkins+Git+Gradle持续集成-实在太详细
Jenkins中配置多项目SCM
Jenkins可用环境变量列表以及环境变量的使用(Shell/Command/Maven/Ant)
Jenkins自动打包配置
Android-解放双手告别测试-使用Jenkins自动化打包
网友评论