Jenkins+maven持续集成环境搭建笔记
1、安装及初始化Jenkins
1.1 安装jdk,配置JAVA环境变量
(1) 下载jdk-8u101-windows-x64.exe到本机并运行
(2) 添加JAVA_HOME系统变量
(3) Path下增加%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;
(4) 设置JENKINS主目录
添加环境变量JENKENS_HOME,指定路径。
1.2 安装tomcat
下载apache-tomcat-8.0.39.zip,解压
设置HTTP端口号:
打开tomcat安装路径/conf下的server.xml文件,设置http端口号(默认为8080,如果已占用,则修改并记住该端口号)
配置context.xml文件,增加如下资源配置,防止cache报错
<Resources
cachingAllowed="true"
cacheMaxSize="102400"
/>
- org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB=INF/classes/META-INF/services/org.codehuas.groovy.source.Extensions] to the chache becasuse there was insufficient free space available after evicting expired cache entries-consider.
1.3 安装Jenkins
下载Jenkins.war文件,放到tomcat安装路径/webapps下。
(1)启动tomcat
运行tomcat安装路径bin目录下的startup.bat文件
正常情况下会成功启动jenkins;
常见错误1:
解决方法:
常见错误2:
解决方法:
1.4 Getting Started
(1)输入ip地址:端口号/Jenkins即可访问Jenkins
首次访问Jekins时,需要输入初始密码,初始密码路径: C:\Users\Administrator.LZD-20160718TIC\.jenkins\secrets\initialAdminPassword。
输入密码后,会提示安装插件,选择安装suggest plugin,进入下图界面,等待插件安装成功。
(2)创建管理用户
点击保存后,Jenkins初始化工作完成
2、安装持续集成所需插件(根据需求选择插件)
Jenkins集成常用CI插件:
deploy,自动部署
junit单元测试
findbugs静态检查
pmd多余if和try catch
checkstyle代码风格检查
clover测试覆盖度
duplicate code重复代码检查
jmeter接口测试/性能测试
selenium基础功能测试
(1) 在主页—系统管理页面下,点击管理插件,进入插件管理页面
(2) 在可选插件列表下,搜索选择所需的插件,勾选后点击直接安装。
3、Jenkins使用
3.1 配置Global Tool Configuration下的JDK和Maven
在系统管理--Global Tool Configuration下设置
3.2 设置Jenkins URL和系统管理员邮件地址
在系统管理—系统设置页面设置Jenkins URL
3.3 新建任务
(1)在Jenkins首页,点击新建菜单
(2)输入一个任务名称,选择“构建一个maven项目”,点击OK
(3)在配置页面,找到源码管理,选择subversion,填入项目的url和svn认证
(4)配置构建触发器
根据自己的需求选择不同的构建触发器,示例每天凌晨4点构建
(5)配置build
保存后即成功新建了一个junit测试任务
(6)立即构建
可以看到构建结果及测试执行结果
其他任务类型与上面类似,只需修改build里的Goals
代码风格检查:checkstyle:checkstyle
静态检查:findbugs:findbugs
多余if和trycatch: pmd:pmd
3.4其他配置
3.4.1 Checkstyle自定义样式
在maven的本地库下,找到repository\com\puppycrawl\tools下的Checkstyle目录
用解压工具直接打开如下的jar文件,修改sun_check.xml文件即可
3.4.2 自定义邮件模板:
在项目配置的Editable-Email Notification下配置
更高级别的需要编写template文件(jelly)
email-ext.jar包下的hudson/plugins/emailext/templates下编写,并指定default content,参考:http://blog.csdn.net/leonranri/article/details/49306663