jenkins入门

来源:互联网 发布:平板电脑推荐知乎 编辑:程序博客网 时间:2024/05/01 11:05

此为网上相关资料集成,整合而成

Jenkins是一个基于社区开发的开源可扩展持续集成服务(CI)。源于Hudson,使用java发。它可以持续编译,运行你的代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告。同时可以监控一些定时执行的任务。

为什么要用持续集成(Continuous integrationCI服务?

我们知道,软件缺陷是不可避免的,要尽量减少错误并提高软件质量,主要有两在类技术,即缺陷预防和缺陷检测。缺陷预防包括编写更好的设计规范、实施代码审核制度、运行代码静态分析工具、运行单元测试等。

通常我们的做法,从代码仓库获取代码用SVN,做单元测试用JUNIT,做代码检查用PMDFINDBUGS,代码编译、打包用ANTMaven,拷贝文件到部署服务器上用 SHELL,出现BUG了通知开发人员要发EMAIL

工具一多了,整合起来用时,不断切换界面,输入命令的复杂性可想而知,有没有一站式的工具可以代劳呢?

这就是JENKINS,有了她,你就可以:通过统一的WEB界面做各种配置工作、查看工具的LOG输出、即使是历史的日志查看也没问题;通知配置排程,可以自动的获取代码、编译、打包和部署,发邮件,无须人工干预。

这样做的最终目的是:

让项目保持健康的状态。如果任何checkin breakbuild,每个人都会在最短的时间内通知到,然后问题被fix。接下来的开发将建立在一个健康正确的基础上,而不是任由问题累积,最后失控。

最后,你的项目随时可以被交付给用户,因为,你的项目每一天都在健康,茁壮的生长。这就是CI的意义所在。

为什么选用Jenkins

持续集成服务器有十来种,但是常用的是CruiseControlJenkins

?  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自有其道理在。

二、      Jenkins安装部署及运行

1、准备工作

直接在官网上http://jenkins-ci.org/下载jenkins的文件jenkins.war,最新版本为1.551

安装jdk1.5以上

2、安装运行

有两种方式部署:

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目录结构

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.xmlJenkins重要的配置文件。Jenkins用于monitor多个build,而jobs这个目录无疑就是存储每个build相关信息的地方。总的来说,Jenkins目录结构非常直白,简洁。

四、      Jenkins使用步骤

?  安装运行JENKINS

?  安装所需插件,jenkins已经安装了AntMavenSubversionCVSMailer等常用插件,

安装如findbugPMDcheckstyle等。

?  配置JDK和邮件服务器地址。

?  新建任务:配置存储库(SVN)地址、配置构件触发器、配置构建步骤,配置通知的邮件地址。如先用Maven编译打包再传到服务器,配置成功或失败后发邮件通知的地址。

?  执行构建:手动执行任务或等待时间到了后执行任务。

?  构建结束,查看结果。

五、      Jenkins主要插件安装

安装方法

Jenkins是可扩展的CI,可以通过安装插件增加新的构建工具。

jenkins->"系统管理"->"插件管理"里面,可以查看需要更新的,已安装的和可选的插件.

在线安装插件,在“可选插件”中选中要安装的插件,安装插件。插件安装的时候需要在高级里面设置代理,确保jenkins可以上互联网,才能够进行在线安装和更新

如果jenkins服务器不能上网http://mirror.xmission.com/jenkins/plugins/http://updates.jenkins-ci.org/download/plugins上,下载插件文件(.hpi后缀),在“高级”中上传插件完成安装。安装后的插件位于jenkinsplugins中,后缀为jpi

无论哪种方式,实际就是把对应的 *.hpi/*.jpi 文件下载到本地的$JENKINS_HOME/plugins目录。

注意:手动安装的插件版本不要大于可选插件中的版本

常用插件安装

安装插件之前先安装analysis-core.hpi插件

Findbugsfindbugs.hpi

进行代码走查的自动化,能够提示垃圾代码或者提供代码优化的建议,寻找代码缺陷。:

(1)       Jenkins安装findbugs插件

(2)       pom.xml中配置findbugs插件

<plugin> 

              <groupId>org.codehaus.mojo</groupId> 

              <artifactId>findbugs-maven-plugin</artifactId> 

              <version>2.5.1</version> 

              <configuration> 

                  <threshold>High</threshold>

                  <effort>Default</effort>

                  <findbugsXmlOutput>true</findbugsXmlOutput>

                 <findbugsXmlWithMessages>true</findbugsXmlWithMessages>

                  <xmlOutput>true</xmlOutput>

                  <formats><format>html</format></formats>

              </configuration> 

           </plugin>

(3)       配置后,在JenkinsGoals中设置findbugs:findbugsOK

PMDpmd.hpi

PMD是一种开源分析Java代码的工具,通过静态分析获知代码错误,该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等等。

(1)       jenkins中安装PMD插件

(2)       JenkinsGoals中设置pmd:pmdOK

Checkstylecheckstyle.hpi

(1)   Jenkins中安装完checkstyle插件

(2)   JenkinsGoals中设置checkstyle:checkstyleOK了。

0 0
原创粉丝点击