Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作。能够实现项目的自动构建、打包、测试、发布、构建结果通知、代码质量分析等等。jenkins官网地址为:https://wiki.jenkins-ci.org/display/JENKINS/Home
Jenkins安装文件下载
目前最新的版本是2.46.1版本
地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本。
Windows最新稳定版的Jenkins地址为:http://mirrors.jenkins-ci.org/windows-stable/jenkins-2.46.1.zip
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service
把Jenkins 2.46.1版解压后,有两种运行方式:
1. 运行 java -jar jenkins.war,采用内置jetty服务器。
2. 将下载的war包文件部署到 servlet 容器(比如tomcat),然后启动容器(推荐这种方式)。
redhat系统下安装流程:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions
Jenkins启动后访问 http://localhost:8989/jenkins (8989此端口可根据实际情况修改,tomcat默认的端口为8080),可打开如下界面表示安装成功
第一次登陆需要输入管理员密码,密码在jenkins的安装后的.jenkins\secrets\initialAdminPassword文件夹,输入后点击Continue按钮,页面会调转到
此时创建一个管理员账号和密码以及电子邮箱地址,然后点击Save and Finish进入,显示下图则表明jenkins启动成功
主要系统配置:
系统管理-Global Tool Configuration
配置JDK
配置MAVEN
系统管理-系统设置
主目录设置,可以默认,在windows下面是 C:\Users\用户名\.jenkins,可手动设置到其他目录,比如F:\.jenkins等
jenkins Location设置:建议修改为IP加端口
在这儿还可以配置MAVEN和EMAIL、GitHub、SonarQube等,待具体使用时再详细介绍。
新建一个项目JOB任务
本文以一个Maven结构的java web工程为列:
点击新建
输入项目名
输入Job名,然后选择构建一个风格自由的软件项目,以及其他一些参数信息注意:如果有多个项目,建议工作空间+项目名称,例:C:\Users\admin\.jenkins\workspace\demo,demo为项目名称,也可取其它名称,这样会在工作空间下新建不同目录,以便区分不同项目
原码管理
在此我使用svn;填写Repository URL及Credentials,及svn的地址及用户信息,其中Credentials在首页Credentials选项新建;
注意:如果是Maven项目,且有多个模块,则Repository URL路径指向所有项目的根地址
在首页Credentials选项新建,输入svn的账号和密码
构建触发器:
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。我的配置如下:
*/5 * * * * (每5分钟检查一次源码变化)
Build periodically:周期进行项目构建(它不care源码是否发生变化),我的配置如下:
0 2 * * * (每天2:00 必须build一次源码)
注:Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分 时 天 月 年。*代表所有,0 12,20 * * * 表示“在任何年任何月任何天的12和20点0分”进行构建。
项目构建:
maven version : 选之前录入的maven;
Goals选项输入打包编译时要执行的命令,如:clean package/clean install;
POM选项选择pom文件所在的相对位置,如果有多个Maven模块,选择父级的pom.xml;
保存,首页左侧 点击 立即构建 选项即可构建项目了。
监控:
当任务一旦运行,您将会看到这个任务正在队列中的仪表板和当前工作主页上运行。这两种显示如下。
图29 主页监控(左),项目监控(右)
一旦构建完成后,完成后的任务将会有三个地方进行显示。
你可以在Jenkins的控制面板上看到它,如下图。
图30 主页项目界面
在上面展示的截图中,您将注意到有两个图标描述当前作业的状态。S栏目代表着“最新构建状态”,W栏目代表着“构建稳定性”。Jenkins使用这两个概念来介绍一个作业的总体状况:
构建状态:下图中分级符号概述了一个Job新近一次构建会产生的四种可能的状态:
Successful:完成构建,且被认为是稳定的。
Unstable:完成构建,但被认为不稳定。
Failed:构建失败。
Disabled:构建已禁用。
图31 构建状态界面
构建稳定性: 当一个Job中构建已完成并生成了一个未发布的目标构件,如果您准备评估此次构建的稳定性,Jenkins会基于一些后处理器任务为构建发布一个稳健指数 (从0-100 ),这些任务一般以插件的方式实现。它们可能包括单元测试(JUnit)、覆盖率(Cobertura )和静态代码分析(FindBugs)。分数越高,表明构建越稳定。下图中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。
图32 构建稳定性界面
你也可以在当前Job主界面上看到它,如下图左下部分
图33 项目主界面
当前作业主页上还包含了一些有趣的条目。左侧栏的链接主要控制Job的配置、删除作业、构建作业。右边部分的链接指向最新的项目报告和构件。
通过点击构建历史(Build History)中某个具体的构建链接,您就能跳转到Jenkins为这个构建实例而创建的构建主页上。如下图
图34 构建历史界面
如果你想通过视图输出界面来监控当前任务的进展情况。你可以单击Console Output(控制台输出)。如果工作已完成,这将显示构建脚本产生的静态输出;如果作业仍然在运行中,Jenkins将不断刷新网页的内容,以便您可以看到它运行时的输出。如下图:
图35 控制台输出界面
查看构建日志:
日志信息:
构建成功!!!如报一下错误:
解决方案:
(a)修改pom.xml文件
<build>
<finalName>demo</finalName>
</build>
添加<defaultGoal>install</defaultGoal>
即:
<build>
<defaultGoal>install</defaultGoal>
<finalName>demo</finalName>
</build>
(b)指定默认Goals
clean install -Dmaven.test.skip=true #加入了跳过测试的代码
重新构建。
部署项目:
构建后操作:
配置后保存,重新构建,其中demo是我web项目的名称,此处的http://localhost:8081,是部署demo项目的服务器和端口
WAR/EAR files:target\demo.war,是构建后生成的war包,正常情况下打包成功后就会部署到tomcat下webapps目录下,如
果构建成功,但没有自动部署,修改WAR/EAR files:**/*.war试试。
构建成功后,即可登录项目验证:
到此Jenkins部署就完成了!!!!!!!!!!!!!!
Jenkins自动部署配置
jenkins自动Deploy插件安装
要实现jenkins的自动部署,首先是要下载 Deploy to Container Plugin 插件(这个是支持将代码部署到tomcat容器的)
找到:插件管理 在“可选插件”界面
安装完之后,如果勾选了:安装完成后重启jenkins 那么会重启jenkins。
Tomcat服务器账号配置
另外还需要在被发布那台Tomcat设置相应的管理员账号和密码:
在tomcat的安装路径conf\tomcat-users.xml文件夹下新增
<role rolename="manager"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager,manager-gui,manager-script,manager-jmx,manager-status"/>
然后重启Tomcat,在jenkins的任务“增加构建后操作步骤”中选择“DePloy War/ear to container”,然后新增对应目标tomcat服务器的连接URL,登录名,密码,发布的war/ear包的原路径和tomcat的webapps下面的工程报名(
原war包名和部署后的工程名可不一致,比如之前是target目录下的demo.war文件,部署后可改名为demo2
)
图28 远程部署配置界面
WAR/EAR files:war文件的存放位置,如:target/test.war 注意:相对路径,target前是没有/的。
Context path:访问时需要输入的内容,如ofCard访问时如下:http://192.168.x.x:8080/ofCard/如果为空,默认是war包的名字。
Container:选择你的web容器,如tomca 6.x
Manager user name:填入tomcat-users.xml配置的username内容
Manager password:填入tomcat-users.xml配置的password内容
Tomcat URL:填入http://192.168.x.x:8080/
Deploy on failure:构建失败依然部署,一般不选择
注意:虽然这种部署方法可能会导致tomcat加载时出现卡死的现象。但是也是最简单的部署方式。如果卡死了重启下就好了,将tomcat的java内存参数调高可以解决这个问题。
Jenkins邮件配置
一、Jenkins内置默认的邮件通知配置
二、Email Extension Plugin插件配置邮件通知
Jenkins钉钉配置
-
钉钉PC端配置
-
钉钉PC端(v3.4.2 2017/02/27更新版本)创建自定义机器人
- 进入某个群->点击下图机器人图标
- 进入某个群->点击下图机器人图标
-
选择自定义机器人
-
设置内容省略,完成前点击复制Hook地址->完成
Jenkins端配置
- 安装插件过程
-
-
- 安装完成后,创建/修改作业中,“构建后的操作”一项点击“增加构建后操作步骤”,选择“钉钉通知器配置”
-
输入完整的Jenkins URL与钉钉机器人那儿获取的Hook中的token
- 此处有个坑,即URL填写,作者给的教程中未填写 "http://" 导致钉钉收到消息后点击无法打开正确页面,正确设置如下:
- 注:我输入192.168.2.47即可打开我的Jenkins,你们在输入的时候根据自己情况修改(如添加8080端口)
-
点击构建,钉钉即可收到消息,点击即可跳转至Jenkins页面
参考资料:
使用Jenkins配置Git+Maven的自动化构建
Jenkins2.32.1+svn+maven安装配置与构建部署(一)
Jenkins入门系列*****