此为网上相关资料集成,整合而成
Jenkins是一个基于社区开发的开源可扩展持续集成服务(CI)。源于Hudson,使用java开发。它可以持续编译,运行你的代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告。同时可以监控一些定时执行的任务。
我们知道,软件缺陷是不可避免的,要尽量减少错误并提高软件质量,主要有两在类技术,即缺陷预防和缺陷检测。缺陷预防包括编写更好的设计规范、实施代码审核制度、运行代码静态分析工具、运行单元测试等。
通常我们的做法,从代码仓库获取代码用SVN,做单元测试用JUNIT,做代码检查用PMD、FINDBUGS,代码编译、打包用ANT,Maven,拷贝文件到部署服务器上用 SHELL,出现BUG了通知开发人员要发EMAIL。
工具一多了,整合起来用时,不断切换界面,输入命令的复杂性可想而知,有没有一站式的工具可以代劳呢?
这就是JENKINS,有了她,你就可以:通过统一的WEB界面做各种配置工作、查看工具的LOG输出、即使是历史的日志查看也没问题;通知配置排程,可以自动的获取代码、编译、打包和部署,发邮件,无须人工干预。
这样做的最终目的是:
让项目保持健康的状态。如果任何checkin break了build,每个人都会在最短的时间内通知到,然后问题被fix。接下来的开发将建立在一个健康正确的基础上,而不是任由问题累积,最后失控。
最后,你的项目随时可以被交付给用户,因为,你的项目每一天都在健康,茁壮的生长。这就是CI的意义所在。
持续集成服务器有十来种,但是常用的是CruiseControl和Jenkins。
? CruiseControl (http://cruisecontrol.sourceforge.net/)
? Hudson (https://hudson.dev.java.net/)
? LuntBuild (http://luntbuild.javaforge.com/)
? TeamCity (http://www.jetbrains.com/teamcity/)
? AntHill Pro (http://www.anthillpro.com/)
? Bamboo (http://www.atlassian.com/software/bamboo/)
? QuickBuild (http://www.pmease.com/)
? Jenkins (http://jenkins-ci.org/)
选用Jenkins,具体原因如下:
? Jenkins容易安装和配置,而且提供了直观灵活的基于web的用户界面配置管理方案;
? Jenkins具有强大的插件框架,目前已经拥有超过600中插件可供使用;
? Jenkins支持多种构建语言,包括Python等;
? Jenkins集成了RSS/Email通知机制;
? Jenkins支持分布式构建。
Jenkins的特点还有许多,相较之下CruiseControl则较为厚重,而且配置需要通过config.xml来完成,界面比 Jenkins要逊色许多,且扩展性没有Jenkins来的强大(不得不说Jenkins作为一个开源项目,其插件的开发做得非常出色)。因此,虽然 Jenkins作为一个后起之秀能渐渐取代当初流行的CruiseControl自有其道理在。
直接在官网上http://jenkins-ci.org/下载jenkins的文件jenkins.war,最新版本为1.551
安装jdk1.5以上
有两种方式部署:
l 第一种方式,将jenkins.war放置到目录,如E:\jenkins下,在cmd下切换到此目录下,输入如下命令:
Java –jar Jenkins.war
出现红框中的文件,表示jenkins已经启动。浏览器(推荐火狐)中输入:http://localhost:8080,打开jenkins。这种方式启动,是使用了内嵌的jetty服务器。
l 第二种方式用tomcat打开
将jenkins放到到tomcat下的wabapps目录下,启动tomcat。启动后输入
http://localhost:8080/jenkins打开jenkins
推荐第二种方式。
JENKINS_HOME
+- config.xml (jenkins配置文件)
+- *.xml (其它配置文件)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- plugins (stores plugins)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- workspace (working directory for the version control system)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
如果有权限管理,则在HOME目录下还会有users目录。config.xml是Jenkins重要的配置文件。Jenkins用于monitor多个build,而jobs这个目录无疑就是存储每个build相关信息的地方。总的来说,Jenkins目录结构非常直白,简洁。
? 安装运行JENKINS。
? 安装所需插件,jenkins已经安装了Ant、Maven、Subversion、CVS、Mailer等常用插件,
安装如findbug、PMD、checkstyle等。
? 配置JDK和邮件服务器地址。
? 新建任务:配置存储库(SVN)地址、配置构件触发器、配置构建步骤,配置通知的邮件地址。如先用Maven编译打包再传到服务器,配置成功或失败后发邮件通知的地址。
? 执行构建:手动执行任务或等待时间到了后执行任务。
? 构建结束,查看结果。
Jenkins是可扩展的CI,可以通过安装插件增加新的构建工具。
在jenkins->"系统管理"->"插件管理"里面,可以查看需要更新的,已安装的和可选的插件.
在线安装插件,在“可选插件”中选中要安装的插件,安装插件。插件安装的时候需要在高级里面设置代理,确保jenkins可以上互联网,才能够进行在线安装和更新
如果jenkins服务器不能上网, http://mirror.xmission.com/jenkins/plugins/或http://updates.jenkins-ci.org/download/plugins上,下载插件文件(.hpi后缀),在“高级”中上传插件完成安装。安装后的插件位于jenkins的plugins中,后缀为jpi。
无论哪种方式,实际就是把对应的 *.hpi/*.jpi 文件下载到本地的$JENKINS_HOME/plugins目录。
注意:手动安装的插件版本不要大于可选插件中的版本
安装插件之前先安装analysis-core.hpi插件
进行代码走查的自动化,能够提示垃圾代码或者提供代码优化的建议,寻找代码缺陷。:
(1) Jenkins安装findbugs插件
(2) pom.xml中配置findbugs插件
(3) 配置后,在Jenkins的Goals中设置findbugs:findbugs就OK了
PMD是一种开源分析Java代码的工具,通过静态分析获知代码错误,该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等等。
(1) jenkins中安装PMD插件
(2) 在Jenkins的Goals中设置pmd:pmd就OK了
(1) Jenkins中安装完checkstyle插件
(2) 在Jenkins的Goals中设置checkstyle:checkstyle就OK了。