搭建Jenkins+Git+Maven+Shell的持续集成&部署环境

1、简介

Jenkins由以前的Hudson更名而来,是一个可扩展的持续集成引擎。主要用于持续、自动地构建/测试软件项目,监控一些定时执行的任务,是管理编译集成过程中的应对不同需求进行编译管理的工具。

jenkins的主要特性包括:

  1. 易于安装--只要把jenkins.war部署到servlet容器,不需要数据库支持;
  2. 易于配置--所有配置都是通过其提供的web界面实现;
  3. 集成RSS/E-mail/IM--通过RSS发布构建结果或当构建失败时通过e-mail实时通知;
  4. 生成JUnit/TestNG测试报告;
  5. 分布式构建支持--能够让多台计算机一起构建/测试;
  6. 文件识别--jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;
  7. 插件支持--jenkins可以通过插件扩展,你可以开发适合自己团队使用的工具。
  8. 跨平台,支持几乎所有的平台,例如Windows,Ubuntu等。

2、安装

环境要求:

  1. 配置好jdk(建议1.7以上版本);
  2. 装好maven,配置好环境变量 (配置maven/conf/setting.xml文件);
  3. 准备一个tomcat环境(也可以通过执行java --jar jenkins.war来进行安装);
  4. 安装好git(建议用1.7以上版本)。
  5. 安装好gradle;
  6. 安装android sdk;

上述工具最好都配置环境变量。

公司的android打包由于jdk,gradle,android build-tools,android sdk(并涉及build.gradle配置)之间版本的影响,必须匹配,使用了jdk1.8,gradle-2.14,build-tools-24.0.1,android sdk-19

公司的Java项目,由于部分项目的需要,要求jdk1.7;

基于以上原因,jenkins中配置两个jdk,项目中选择相应jdk进行配置

下载jenkins.war。官网(http://jenkins-ci.org/)有提供的jenkins.war和针对各种系统的独立安装包。

Jenkins安装有两种方式,一种是通过java直接启动,另一种是通过tomcat启动。

²  通过java是的方式是直接运行java –jar jenkins.war(全路径),启动后通过在浏览器中输入http://localhost:8080/

²  通过tomcat的启动方式是将war包放在tomcan安装路径下的webapps目录下,启动tomcat。在浏览器中输入http://localhost:8080/jenkins

 

更改jenkins工作目录。jenkins的默认工作目录在系统当先用户目录下的.jenkins文件夹下,如windows系统为C:\Users \user-name\.jenkins。通过修改jenkins\WEB-INF\web.xml文件,如下图,修改HUDSON_HOME变量值保存 即可。已部署好的jenkins需要重启tomcat。 根据项目需要可自行选择是否修改。

3、启动

浏览器中输入http://localhost:8080/jenkins/http://localhost:8080/。就可以看到jenkins的页面。

第一次安装会提示输入administrator password,到指定路径下复制密码进行输入(启动的命令中也会提示密码)。

下一步后会提示安装推荐插件或者自己选择插件进行安装。

建议选择install suggested plugins,这样会自动安装一些常用的插件。安装完成后进入创建账户。

完成账户创建后就完成了Jenkins的设置。

现在,可以开始使用jenkins进行继续构建了。

4、插件安装

jenkins的大部分功能是通过插件实现,常用插件有:

  1. Git Plugin(依赖Git Client Plugin):git代码管理插件
  2. SSH plugin:ssh插件
  3. GitHub Plugin:GitHub插件
  4. Maven Integration plugin:Maven工程管理插件
  5. Publish Over SSH: 远程shell插件
  6. Email Extension Plugin:邮件通知插件
  7. Gradle插件(android编译专用)

4.1.在线自动安装

插件的安装在"系统管理->管理插件->可选插件"中,如图:

选择需要安装的插件,点击“直接安装”。

4.2本地手动安装

手动将插件下载到本地,然后点击“系统管理->管理插件->高级”,从本地选择插件文件,然后点击上传。

如果是jenkins,也可将hpi文件拷贝至jenkins home目录下的WEB-INF/plugins目录下(或者是jenkins home目录的plugins目录)。

5、配置

5.1系统设置

在"系统管理->系统设置"选项中,对jenkins进行设置。如下图所示,"主目录"即jenkins的工作目录,"工作空间根目录"为每个任务 的工作空间目录,默认为jenkins工作目录下的jobs/jobname/workspace,"构建根目录"用来保存每次构建的构建产物和构建信 息,默认在jenkins工作目录下的jobs/jobname/builds。

 

Jenkins URL默认是localhost,可以修改为本机IP,以便其他人可以通过IP访问jenkins。

管理员邮件地址就是邮件的发件人地址(必须和后面邮件配置发件人邮箱一致,否则发不成功邮件)

²  Publish over SSH

找到Publish over SSH配置项,配置如下配置

底下还有个Test Configuration按钮,点击,如出现Success则表示配置成功。

²  邮件通知

找到邮件通知配置项,根据实际情况配置:

可以勾选 “通过发送测试邮件测试配置”  测试此配置能否连通(需要提供接收邮件地址Test e-mail Recipient), 如果收到以下邮件,恭喜.

5.2工具设置

此处为Global Tool Configuration设置,主要包括JDK,Maven,Git,Gradle设置。以下根据实际情况进行配置。

配置jdk:  

配置maven:

配置git:

配置gradle

 

6、持续集成

6.1创建一个Jenkins任务

 1.点击新建任务链接。创建一个maven项目,输入任务名称

 

6.2任务的基本配置

        Discard Old Builds选项配置如何抛弃旧的构建。如果每次构建相关的文件都保存下来,磁盘空间将被渐渐消耗光。Jenkins为此提供了两种方式让用户选择保留哪些构建任务的相关文件:

1) 保持构建的天数(Days to keep builds:如果其值为非空的N,就仅保留N天之内的构建文件。

2) 保持构建的最大个数(Max # of builds to keep:如果#非空,就仅保留最多#个最近构建的相关文件。

  如:保留10个最近的构建,在保持构建的最大个数一栏中输入“10”即可。

6.3源码仓库配置

  在项目配置页面源码管理部分,选择Git,然后在Repository URL文本框中输入项目的Git仓库地址。

在Credentials位置点击Add弹出授权输入框

Credentials授权可以是SSH也可以是用户名密码

输入Branch分支。

6.4构建触发器

下面的Build Triggers是一个持续集成的触发器插件,
可以根据已经完成构建的结果,触发新Job或者传递参数。
默认的选项是Build whenever a SNAPSHOT dependency is built,意思是依赖于快照的构建,当代码有更新时就构建项目。

下面的Build periodically和Poll SCM可以设置定时自动构建。

其中

1) Build whenever a SNAPSHOT dependency is built:依赖于快照的构建,当job依赖的快照版本被build时,执行本job。

2)Buildafter other projects are built:在其他项目构建完成后构建本项目。

3)Buildperiodically:周期性的构建本项目,不管版本库代码是否发生变化,通常不会采用此种方式。

0 4 * * *  (每天凌晨4点必须构建一次源码)

4)Buildwhen a change is pushed to GitHub:当GitHub有版本库更新时触发Jenkins进行构建

5)PollSCM:周期性的轮询源码仓库,发现有更新时构建本项目。

*/10 * * * *  (每10分钟检查一次源码变化,如果有更新才build)

  Jenkins 使用著名的UNIX 任务调试工具Cron(http://en.wikipedia.org/wiki/Cron)所使用的配置方式来配置轮询代码仓库的频率:用 5 个字段表示不同的时间单位,字段之间用空格分隔:分(0-59) 时(0-23) 日(1-31) 月(1-12)星期几(0-7,0、7都表示周日)。

  几种特殊匹配符:

  1) * :匹配范围内任何值

  2) M-N :匹配 M-N 范围内任何值

  3) A , B , … , Z :逗号匹配多个值

  4) */X 或 M-N/X :范围内能被 X 整除的

  星期几与日期是或的关系。

  对于一个健康的项目,常见的做法是:每隔10分钟轮询代码仓库,Schedule对应的配置为:*/10 * * * *。

  可以用“#”在Schedule配置文本框中进行注释。

 

6.5构建配置

Root POM:填写你项目的pom.xml文件的位置,注意:是相对位置,如果该文件不存在,会有红色字提示。

构建命令,我们采用最简单的clean install 当然这里可以根据各自需求配置。

6.6构建后操作

构建后操作:"Archive the artifacts"用于配置最终构建产物。

 

 

7、持续部署

部署可以和集成放在一个任务里,但是为了减小相互之间的影响,实现若耦合,便于快速的发现问题,我们将集成和部署分开进行。

7.1新建任务

1.点击新建任务链接。创建一个自由风格的软件项目,输入任务名称

7.2获取部署包

从集成任务中获取到生成的部署包,从Add build step中选择Copy artifacts from another project.

 

 

7.3发送部署包

然后继续添加Build选项Send files or execute commands over SSH,利用这个将构建后的war包传到远程服务器上,并通过SSH调用远程的脚本进行部署,如下图:

系统设置中配置好SSH服务器后,服务器就会出现在SSH Server Name的列表中,Transfer Set SourceFiles这个路径默认是在项目的workspace中。Execcommand路径为SSH服务器上的脚本,也就是将war包上传到服务器上之后所执行的脚本文件的位置。

Shell脚本

8、构建后操作

8.1邮件设置

项目中勾选E-mailNotification,将项目相关人的邮箱录入,用逗号分开。点save。

或者“增加构建后步骤”,选中Editable Email Notification可进行详细配置。

局部配置会覆盖掉全局配置,我们之前在全局配置里配置了构建失败邮件触发器,这里是更加精细的配置 我们选择构建失败Failure-1st触发器,失败以后发邮件给开发者,(这里可以根据实际需要,配置,可以配置多个触发器)开发者的邮件在Recipient List里配置。

注意事项:

1、  windows中是不区分大小写的,而linux是区分大小写的,导致windows中正常执行的过程在linux中可能出现问题。

2、  不同的项目可能依赖的工具版本不一样,可以在Global Tool Configuration设置同一个工具的不同版本,然后在具体项目中选择相应版本的工具。

3、  机器中设置的环境变量可能jenkins用不了,可以在系统设置中设置变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值