Jenkins配置自动化构建
转自: http://blog.sina.com.cn/s/articlelist_3053349671_14_1.html
Jenkins 简介和安装(一)
![此博文包含图片](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
4.Jenkins在window下的默认工作空间用户的目录下.jenkins,一般情况下我们需要自己更改一下,因为放在默认路径有些不方便,这个可以根据习好确认,我这里更改为D:\Jenkins\Jenkins。
我这里主要采用Jenkins 构建maven2/3项目,因为我们目前的开发语言采用的是java,而打包工具采用的maven,所以以下我配置的项目均采用的是maven2/3项目,构建Maven项目时,首先我们需要安装配置外围环境maven
1.maven环境安装,由于maven的环境配置比较简单,之前的博客也说过此处不在详解
2.Jenkins中配置maven的环境变量,Jenkins中配置环境变量的时,如果你没有安装maven可以直接安装,如果你安装maven,那么只要设置环境变量即可
如果环境中没有安装maven只要勾选自动安装,即可安装,在安装的过程中你可以选择安装的版本,而且有时候构建的项目中的maven版本不同,我们可以设置多个maven环境,只要点击新增maven即可配置
3.配置好maven以后,我们下面要配置maven的配置文件,其实这里分为局部和全局配置文件,如果你安装的maven保持默认,那么这里设置保持默认即可,如果你的maven的配置文件变更只要选择"Settings file in filesystem",指定setting文件的位置即可。
4.此时我们要配置我们的最重要的东西jdk,他的配置跟maven的配置一样,只要指定jdk的环境变量即可,同时jdk也可以指定多个版本
目前为止我们把所以的外网环境均配置完成,熟话说磨刀不误砍柴。
5.新建maven2/3项目,输入项目的名称demo,点击OK,此时我们的项目创建完成了,那么我们创建这个项目肯定要做一些什么事情,下面我介绍我们要做的事情
下面我介绍一下Jenkins最简单的功能,获取代码,编译代码,打包,这里我们采用的是SVN作为代码管理服务器,首先我们需要在Jenkins服务器
上安装svn的客户端,并且svn可以自动获取svn服务器的代码,那么这里就有一个权限,只要在Jenkins服务器上验证通过即可,这里我不详细解释
了
6.源代码管理中选择SVN选择(SVN、CVS默认插件已经安装,所以插件在这里不需要安装了),只要在Repository URL中输入SVN的路径即可,其他的详细我这里不说后面详细解释,这里只给大家解释简单的构建一个项目
7.构建maven项目build这是必须设置的,因为这里不要是对代码打包、编译的一个选项
这样我们这里构建了一个最简单的CI项目,点击保存,即完成了项目的新建工作
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测,看到这里我们是不是觉得soanr很强大呢,那么我们下来将sonar集成到Jenkins。
sonar的安装和配置请查看我的另一个博客http://blog.sina.com.cn/s/blog_b5fe6b270102v7xj.html
之前我们发布的容器的时候需要安装deploy的插件,那么我们通过sonar做静态检查的时候是否需要安装其他的插件呢,这里必须需要安装,我们需要去管理插件中安装Sonar Plugin,直接安装即可,如果在线安装失败可以去官方下载。
soanr的插件安装完成我们需要在系统管理->系统设置 配置下soanr的环境变量,我们会发现在系统设置中多出了一项sonar的选项。
我想这个soanr的配置选项有点特别的简单,我这里就不一一说明了,因为我这里soanr不需要与maven集成、以及我的sonar服务器与数据库都在同一台服务器,所以关于后面的选项我们没有添加。
下面我们就可以再我们的项目中采用sonar对项目代码进行静态检查,下面我们进入项目设置中
后面没有标记的选项都是关于maven的,我这里采用了全局配置,这里就不配置了,配置完成点击保存,那么在执行任务的时候,就可以采用soanr进行代 码检查了,那么此时我们已经可以完成的构建一个CI项目了,后续我会给大家详细的介绍一下Jenkins的功能,这里只是给大家做一个快速上手和入门的工 作
首先Jenkins提供了一个发布的插件deploy plugin,来帮助我们实现远程部署,这个插件默认是不安装的,所以需要我们自己手动的来安装。
手动安装deploy plugin 插件,我们可以在线安装,也可以通过官方下载相关插件,下载地址:https://updates.jenkins-ci.org/download/plugins,我这里主要是通过Jenkins在线安装。
1.系统管理->管理插件->可选插件->搜索“Deploy to container Plugin”,勾选插件直接安装,等着Jenkins自动安装完成。此时我们打开我们之前新建的项目选择“增加构建后的操作”中增加了一项“Deploy war/ear to a container",将我们的war和ear工程部署到容器。
2.我们添加一个deploy war/ear to a container选择,Jenkins中构建后操作多出一个发布选项
WAR/EAR files:是war包的相对路径
content path:tomcat的发布路径,即使用localhost/(content path设置的名字)来访问项目.
contaners :发布到的容器,主要可发布到tomcat、jboss、GlassFish
deploy on failure:发生错误的时候是否发布到tomcat
3.点击add contaners 添加发布的容器,我们这里要发布到tomcat,所以我这里添加的是tomcat
如果你部署的是集群环境那么可以添加多个容器来部署应用。此时只要我们运行我们的任务即可将我们的应用发布到tomcat,记住这里要把应用服务器的防火墙关闭。
这里在多说一点tomcat默认的登录是注释的,我们需要打开。
在tomcat/conf/tomcat-users.xml下添加以下代码即可,因为之前的博客讲解过tomcat管理权限的配置,这里就不重复讲解。
触发远程构建:触发远程构建
Build after other projects are built:在其他项目触发的时候触发,里面有分为三种情况,也就是其他项目构建成功、失败、或者不稳定(这个不稳定我这里还木有理解)时候触发项目
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。我的配置如下:
*/5 * * * * (每5分钟检查一次源码变化)
Build periodically:周期进行项目构建(它不care源码是否发生变化),我的配置如下:
0 2 * * * (每天2:00 必须build一次源码)
那么是不是有这个就很强大了,不需要我们手动的点击构建了,因为我之前在Microsoft的时候我们的项目都是半夜开始工作,到第二天早晨的时候开发查看结果即可。
有朋友就要说啦,那么我们是不是需要每天都登录上去看构建结果呢,这里我跟大家说,这个不需要,下次我给大家解释Jenkins的邮件发送功能,希望对大家有帮助
1.首先在系统管理-插件管理-安装Email-ext plugin
2.系统设置中配置邮件服务器,在系统设置页面找到"邮件通知"的设置发送邮件的服务器,我这里以163邮箱为例如图
设置完成以后,我们点击Test Configuration,发送测试邮件时候出现失败,这里因为我们首先需要设置一下发送邮件的邮箱账号,这里只是配置邮件服务器地址、账号和密码,但是jenkins不知道采用哪个邮箱去发送,在系统设置页面找到“Jenkins Location”设置“系统管理员邮件地址”,必须与上图设置的用户保持一致。
此时我们已经把可以发送邮件了,下面我们来配置要发送的内容
3.系统设置中找到Extended E-mail Notification位置配置发送信息,下图是我自己配置的,仅供参考
具体的说明我就不解释了,字面已经说的很清楚了,这样我们就配置好邮件通知了
下面我们根据项目需要来配置发送人,以及触发条件。
4.在构建后的操作添加“Editable Email Notification”
这样jenkins的邮件通知就配置完成了。
使用Jenkins配置自动化构建
收藏:
![](http://img-my.csdn.net/uploads/201303/06/1362550293_4422.png)
![](http://img-my.csdn.net/uploads/201303/06/1362550346_3036.png)
![](http://img-my.csdn.net/uploads/201303/06/1362550313_2212.png)
![](http://img-my.csdn.net/uploads/201303/06/1362550328_8571.png)
![](http://img-my.csdn.net/uploads/201303/06/1362550338_1968.png)
![](http://img-my.csdn.net/uploads/201303/06/1362550307_1497.png)
![](http://img-my.csdn.net/uploads/201303/06/1362550358_1921.png)