最新jenkins使用手册.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datejenkins使用手册JIRA操作手册Jenkins操作手册-第一章 概述篇持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。持续集成最早由Martin Fowler 于10年前已经提出,希望通过持续集成能够实现以下过程: 任何人在任何地点,任何时间可以构建整个项目。 在持续集成构建过程中,每一个单元测试都必须被执行。 在持续集成构建过程中,每一个单元测试都必须通过。 持续集成构建的结果是可以发布的软件包。 当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。Jenkins是一个软件界非常流行的开源CI服务器,下面介绍从基础篇、提高篇两个层面进行介绍。第二章 基础篇2.1 Jenkins安装2.1.1 资源下载首先从http:/Jenkins-ci.org/下载最新的Jenkins版本,最新版本为1.383,下载的文件载体为Jenkins.war;2.1.2 运行Jenkins的前提2.1.2.1 环境变量的设置:1)JAVA_HOME,设置JDK的安装目录,建议采用JDK52)ANT_HOME,设置Ant的目录,建议采用ant最新版本1.83)JENKINS_HOME,设置Jenkins的配置文件目录,默认为用户的目录,建议为Jenkins的安装目录,便于控制;4)PATH,需要将java、ant的目录配置到path目录下;5)CLASSPATH,需要将JDK的tools.jar配置到classpath目录中;2.1.2.2 其他外部条件1)需要WebLogic923的远程控制的jar文件,文件有weblogic_sp.jar、weblogic.jar、webservices.jar三个jar文件,这三个文件位于WebLogic安装目录的相对目录serverlib下;将上述三个jar配置到系统的CLASSPATH环境变量中;2.1.3 Jenkins启动Jenkins可以有两种方法进行运行Jenkins;1)直接通过命令行转到Jenkins.war所在的目录,当前为D:Jenkinsjava -jar Jenkins.war -httpPort=8080 prefix=Jenkins说明:httpPort为Jenkins运行的端口,默认端口为8080,上述命令其实Jenkins运行在Winstone容器中;2)在Web容器中运行Jenkins可以运行在标准的Web服务器中,支持Tomcat、Jboss、WebLogic中,只需要将Jenkins.war放置到相应目录,启动服务就可以进行访问;2.1.4 Jenkins访问验证Jenkins是否运行正常,通过访问http:/hostIP:port/Jenkins即可。我的jenkins路径:http:/192.168.8.26:8080/Hudosn应用支持IE、FireFox等浏览器。2.2 Jenkins基本设置Jenkins的基本设置都在系统的后台设置中,具体路径为:系统管理->系统管理2.2.1 设置JDK可以在这里进行JAVA_HOME设置,假如已经系统已经设置JAVA_HOME,可以不需要再进行配置,同时可以让Jenkins再安装一个JDK。2.2.2 设置ANT可以在这里进行ANT_HOME设置,假如系统已经设置了ANT_HOME,可以不需要再进行配置,同时可以让Jenkins安装一个最新的ANT。备注:为了让配置更加简单,建议在系统级设置JAVA_HOME和ANT_HOME,便于系统的迁移。2.2.3 配置邮件信息系统能够在执行计划完成后发送结果邮件,需要配置邮件服务器的相关信息:上面还需要配置Jenkins的URL地址,作为后期访问地址,一旦设定URL,就不要轻易修改。左边显示的可过滤的条件及属于当前用户的BUG2.3 创建任务在Jenkins主菜单点击“新建任务”,出现下图:键入任务名称,选择“Build a free-style software project”选项,点击“OK”按钮后,出现下面的界面:说明:1)Project name:项目(任务)名称,项目(任务)名称不能重复,后面通称任务;2)Description:项目描述,主要对任务进行简要说明;3)Discard old builds:是否保留过去的构建,默认是保留。(帮助:这里控制着您想要在Jenkins所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译构件等等)。Jenkins为此提供了两个标准: 时间驱动。在Jenkins中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。 数量驱动。在Jenkins中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。Jenkins也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。4)This build is parameterized : 如果选择此选项,Jenkins将允许您提供一套任意的键值对参数,它们会被传递到构建过程里。配置的参数往往是构建运行环境中的一些环境变量。(帮助:当您使用了Jenkins的各种自动化,有时要求在构建过程中提供一组用户的输入,使用“parameterize”就能够更方便构建。例如,您可能会设立一个按需测试,在那里用户可以提交一个二进制文件的压缩文件来进行测试。5)Disable Build:禁止此任务进行构建,默认是不禁止;6)Execute concurrent builds if necessary(beta):7)Advanced Project Options Quite period:构建前等待时间; Retry Count:从SCM仓库中取出尝试时间; Block build when upstream project is building:假如上一个仍在构建过程中,停止本次构建任务; Use custom workspace:指定当前任务的workspace,否则默认为JENKINS_HOME的工作目录8)Source Code Management:指定编译源代码的获取方式: None:手动方式; CVS:从CVS仓库中获取;备注:CVS通过Module(s)获取多个项目工程 SVN:从SVN仓库中获取;备注:SVN通过“Add more locations”来添加多个工程,在SVN的URL中需要添加用户名密码信息,例如:svn:/username:passwd192.168.1.15/SKELETON-V2.0/trunk/program/source/skeletonCommon9)Builds Triggers:设置构建触发器 Build after other projects are built:设置构建的流水线,配置在设置的任务构建完成后自动构建此任务,进行设置后,可以在任务统揽中看到以下“下游项目说明” Trigger builds remotely (e.g., from scripts):设置远程触发进行任务构建; Build periodically:设置构建频率,设置跟Quartz CronTrigger设置雷同; Poll SCM:设置从SCM库中检查源代码是否更新:备注:关于第三和第四两点,基本配置为 分钟 小时 天 月 星期举例: 每分钟进行集成 * * * * *, 每5分钟进行集成 5 * * * *,每天12点和23整点进行集成 0 12,23 * * *10)Build Environment:设置构建环境设置 Tool Environment:设置工具的环境变量; Create a formatted version number:设置构建的版本号11)Build:执行构建构建支持6种方式,shell(运行于Linux环境)、Maven(支持Maven编译)、Command(windows批处理命令)、Ant、EasyAnt、Export job runtime parameters。举例:Ant:备注:Targets主要是执行ant脚本中哪几个部分,可以添加多个;Build File:需要指定Ant脚本的物理位置;Properties:添加Ant指定的属性;Java Options:设置运行java时的属性,例如内存、堆大小等;Command备注:执行Windows的批处理命令,这里不能利用Hodson设置的变量;12)Post-build Actions Publish Javadoc:设置构建时产生JavaDoc时的文件目录; Archive the artifacts:设置构建后哪些文件需要进行归档处理; E-mail Notification:邮件提醒备注:可以向多个人发送邮件,通过“;”进行分割 Status Monitor:构建状态监控;:),好,基本的配置到这里结束,可以搭建一个新的任务进行构建了;2.4 运行并监控构建作业2.4.1 主控制面板当配置完成一个任务后,回到主控制面板: 上图中右边列表列举现在已经配置的任务已经任务当前的状态 左边有构建队列,当有构件时,会把当前正在构建的队列在上面进行列举; 上图右下角有RSS订阅,支持订阅全部、失败和最后一次等;2.4.2 手动构建一个任务当一个任务配置完成后,可以采用手动构建和触发器构建两种方式,在项目验证阶段,可以通过手动触发方式,点击任务区的“立即构建”,会在Build History中出现以下进度条:点击进度条,可以进入到具体的编译过程,例如下图:等构建完毕后,你可以看到最新任务构建的结果图:浏览任务的整体运行状况入下图:最左边列图示为最后一次构建状态,第二列图示为整个任务的构建总体结果,具体如下表示,下图也只截取部分:2.4.3 任务构建状态Jenkins通过当前构建状态和构建稳定新当前构建状态分为以下几种项目构建完成,同时被认为是稳定的项目构建完成,但被认定为不稳定构建失败作业已经禁止构建稳定行,Jenkins会基于一些后处理器任务为构建发布一个稳健指数(从0-100 ),越高越稳定构建成功率>80%构建成功率60%-79%构建成功率40%-59%构建成功率20%-39%构建成功率0-19%期待任务编译都处于和 状态。第三章 提高篇3.1插件管理:由Jenkins类库现有的Jenkins功能性扩展和开发者们为Jenkins提供的新功能都可以称之为Jenkins插件。Jenkins将插件分为Artifact Uploaders、Authentication and User Management、Build Notifiers、Build Reports、Build Tools、Build Triggers、Build Wrappers、Cluster Management and Distributed Build、Command Line Interface、External Site/Tool Integrations、Maven、Miscellaneous、Other Post-Build Actions、Page Decorators、Slave Launchers and Controllers、Source Code Management、User Interface等17个插件大类。1)Artifact Uploaders:协助把构建结果发布到一些网络终端上,例如FTP服务器、Tomcat应用服务器、J版本库等等;2)Authentication and User Management:Hodson基本包不提供用户权限管理,通过此插件,融入LDAP、MySql等权限管理插件,丰富权限管理;3)Build Notifiers:任务构建完成后发布通知的方式,支持Twitter、IRC、Google日历等;4)Build Reports:主要针对构建的源代码进行分析的报表,例如FindBugs、Checkstyle等等,5)Build Triggers:构建事件监听并触发构建的插件,例如通过URL改变进行触发编译;6)Build Tools:实现额外构建工具的插件,例如Ruby Plugin、Grails Plugin等;7)Build Wrappers:8)Cluster Management and Distributed Build:9)Command Line Interface:10)External Site/Tool Integrations:11)Maven:12)Miscellaneous:13)Other Post-Build Actions:14)Page Decorators:15)Slave Launchers and Controllers:16)Source Code Management:17)User Interface:备注:所有的插件安装完毕后,必须重启Jenkins才能使插件生效,不支持即插即用模式。具体插件使用说明:3.1.1 FindBugs 插件设置1)下载FindBugs,并解压到相应的目录,将findbugs-ant.jar拷贝ANT_HOMElib目录下;2)设置FINDBUGS_HOME目录为解压目录;3)Build.xml文件中配置FindBugs配置: 设置findBugs在build.xml中的路径<!设置环境变量定义-><property environment="env"/><!定义findbugs.home路径-><property name="findbugs.home" value="$env.FINDBUGS_HOME"/> 声明Findbugs任务<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/> 创建FindBugs任务,例如:<target name="findbugs" depends="compile-shipUd"> <findbugs home="$findbugs.home" output="xml:withMessages" outputFile="findbugs.xml" > <sourcePath path="$jar.src;$jar.src1;$shipUdjar.src" /> <class location="$shipudjar.bin" /> </findbugs></target> Eclipse中配置Findbugs选择Eclipse->Windows-Perference,对ant进行编辑,选择Runtime配置findbugs-ant.jar到Classpath目录下下,可以通过选择“Add External JARS”;对Tasks进行配置,增加一个Task,命名为findbugs,选择Location为添加的findbugs-ant.jar的物理位置,并指定具体为哪个类,如下图: 在Jenkins中设置Findbugs选择需要配置任务进行配置,勾选其中findbugs选项,如下图: 编译成功后,fingbugs的结果和趋势图可以点击具体的链接进行分析findbugs的认定结果和具体的代码,趋势图3.1.2 Ftp插件配置1)在系统的插件管理中下载FTP插件;2)在系统管理中配置FTP服务器的相关信息,如下图:在选定的任务中配置FTP在这里选择需要上传的FTP服务器,并指定源文件和目的地址。3.1.3 Junit插件3.1.4通过远程访问触发Jenkins支持远程触发方式进行构建,具体设置在当前任务的设置中,如下图:用户通过访问上面的URL就可以进行相应的构建。3.1.5 WebLogic.DeployerWebLogic Server提供以下四种方式来帮助你配置和部署应用系统: Weblogic.Deployer 管理控制台 WLST Weblogic.Deployerweblogic.Deployer 提供基于命令行的界面来执行基本和高级部署任务。当希望命令行访问 WebLogic Server 部署功能时,或者当需要使用管理控制台执行不受支持的部署任务时,使用 weblogic.Deployer。 管理控制台管理控制台提供一系列基于 Web 的部署助手,这些助手可以指导您完成部署过程。管理控制台还提供控件可用于更改和监视部署状态、在部署设备启动并运行时更改所选的部署描述符值。 当需要以交互方式执行基本部署功能并且可以访问受支持的浏览器时,请使用管理控制台。 WLSTWebLogic 脚本工具 (WLST) 是新的命令行界面,可用于使域配置任务(包括应用程序部署配置和部署操作)自动化。为了实现系统的自动部署,可以采用WebLogic.Deployer和WLST两种方式进行,但由于持续集成环境和WebLogic Server在物理位置上差异,最终选择采用WebLogic.Deployer作为持续继承发布到WebLogic Server方式。下面对其进行基本操作介绍。WebLogic.Deployer部署采用java命令方式进行部署,务必需要把基础篇中3个WebLogic相关的jar放到CLASSPATH中或则在启动命令行中添加-classpath命令参数。下面简单说明几个最常用的WebLogic.Deployer的命令: 部署或重新部署应用程序或模块java weblogic.Deployer -adminurl t3:/192.168.180.3:7001 -username username -password password -deploy -targets target_list -upload -name deployment_name 停止部署单元并从目标服务器中删除临时文件java weblogic.Deployer -adminurl t3:/192.168.180.3:7001 -username username -password password -undeploy -targets target_list -name deployment_name 详细命令说明:命令或选项说明-username username管理员用户名。如果提供 -username 选项但不提供对应的 -password 选项,则 weblogic.Deployer 会提示您输入密码。-password password管理员用户密码。 -targets target_list在其上分发和部署应用程序或模块的目标。target_list 参数是以逗号分隔的目标服务器、群集或虚拟主机的列表。-upload将指定的部署文件(包括部署计划或备用部署描述符)传输到管理服务器。需要发布的war或ear包的路径-name deployment_name要分配给新部署的应用程序或独立模块的部署名称,可选。详细可以参考: 3.2 安全篇Jenkins安装完成后,默认是不进行安全控制的,需要在系统配置中添加安全控制后,具体位置在系统管理的安全域中,Jenkins支持Jenkins专用用户数据库、LDAP、Servlet容器代理、MySql数据库。授权策略包括采用安全矩阵、登陆后可以做任何事、任何用户可以做任何事(没有任何限制)、项目矩阵授权策略、遗留模式等。建议采用Jenkins专用数据库,安全策略采用安全矩阵方式,已经能够基本满足现有的模式。如下图:选择Jenkins专用用户数据库后,勾选允许用户注册选项。在添加用户或组,对其进行附权限。用户注册在首页的右上角,如下图点击注册后,出现如下图:添加用户的基本信息,点击注册按钮后,用户注册完成,用户没有赋权限,登陆后的界面如下:备注:对用户先赋权限或先注册再赋权限没有先后顺序。3.3 个性化设置Jenkins对用户视图支持个性化定制,保证登陆用户只关注自身关注的项目视图,用户登陆后,默认一般显示如下图:可以点击“+”增加个性化视图,出现如下视图:选择List View选项,填写“View name”,以及需要的任务选项,同时可以选择需要展示的列,选择完成后保存即可,可以在首页上显示。用户登陆后,可以选择“Personal View”或“My Views”查看个性化