jenkins中文使用手册

zhikai 贡献于2017-02-19

作者 测试部谢启高  创建于2004-04-16 03:20:00   修改者codyy  修改于2015-11-26 02:05:41字数15456

文档摘要:随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
关键词:

 Jenkins 操作手册 苏州测试部 目 录 第 1 章 概 述 1 第 2 章 基础篇 2 2.1 Jenkins安装 2 2.1.1 资源下载 2 2.1.2 运行Jenkins的前提 2 2.1.3 Jenkins启动 2 2.1.4 Jenkins访问 2 2.2 Jenkins基本设置 3 2.2.1 设置JDK 3 2.2.2 设置ANT 3 2.2.3 配置邮件信息 4 2.3 创建任务 4 2.4 运行并监控构建作业 7 2.4.1 主控制面板 7 2.4.2 手动构建一个任务 7 2.4.3 任务构建状态 8 第 3 章 提高篇: 10 3.1 插件管理: 10 3.1.1 FindBugs 插件设置 10 3.1.2 Ftp插件配置 12 3.1.3 Junit插件 13 3.1.4 通过远程访问触发 13 3.1.5 WebLogic.Deployer 13 3.2 安全篇 14 3.3 个性化设置 15 第 4 章 常见问题 17 4.1 edit lock问题 17 4.2 IOException: Unable to delete问题 17 4.3 not recognized as a valid application type 问题 18 第 5 章 其它说明 19 5.1 CI挑战 19 5.2 ANT基本知识 19 第 1 章  概 述   1.1 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 持续集成正是针对这一类问题的一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。 持续集成最早由Martin Fowler 于10年前已经提出,希望通过持续集成能够实现以下过程: Ø 任何人在任何地点,任何时间可以构建整个项目。 Ø 在持续集成构建过程中,每一个单元测试都必须被执行。 Ø 在持续集成构建过程中,每一个单元测试都必须通过。 Ø 持续集成构建的结果是可以发布的软件包。 Ø 当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。 1.2 持续集成的核心价值 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量; 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能; 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。 1.3 持续集成的原则 业界普遍认同的持续集成的原则包括: 1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 IBM Rational ClearCase、CVS、Subversion 等; 第页 2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地; 3)需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个小时构建一次; 4)必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。 1.4 持续集成系统的组成 由此可见,一个完整的构建系统必须包括: Ø 一个自动构建过程,包括自动编译、分发、部署和测试等。 Ø 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。 Ø 一个持续集成服务器。本文中介绍的 Jenkins/Jenkins 就是一个配置简单和使用方便的持续集成服务器。 1.5 Jenkins介绍 Jenkins是一个软件界非常流行的开源CI服务器,Hodson是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: Ø 持续的软件版本发布/测试项目。 Ø 监控外部调用执行的工作。 Jenkins的新版本取名叫Jenkins,所以本文档中的指Jenkins与Jenkins这2个词为指同一个软件。 使用Jenkins人员需要对持续集成的概念有所了解,更多的要求对代码的编译过程很了解,Jenkins对于maven工程完整的编译和发布流程如下: Ø Jenkins从SVN上拉取代码到指定的编译机器上。 Ø 在编译机器上触发编译命令或脚本。 Ø 编译得到的结果文件。 Ø 把结果文件传到指定的服务器上。 使用Jenkins进行编译的人员,需要对自己的代码的编译方法,过程十分了解,对编译任务进行分拆。 第页 第 2 章 基础篇 2.1 Jenkins安装 2.1.1 资源下载 首先从http://jenkins-ci.org/下载最新的jenkins版本,最新版本为1.594,下载的文件载体为jenkins.war; Jenkins为免费开源软件,并且更新速度稳定,每周一次更新。所以网站上会提供有2个版本,一个最新版本,一个老但稳定的版本。可自行选择。 2.1.2 运行Jenkins的前提 1) 环境变量的设置: a) JAVA_HOME,设置JDK的安装目录,建议采用JDK1.7,但不建议用JDK1.8 b) ANT_HOME,设置Ant的目录,验证过ant最新版本1.9.4可用。 c) JENKINS_HOME,设置Jenkins的配置文件目录,默认为用户的目录,建议为Jenkins的安装目录,便于控制; d) MEVAN_HOME,设置Maven的目录,验证3.2.3可用。 e) PATH,需要将java、ant,maven的bin目录配置到path目录下; f) CLASSPATH,需要将JDK的tools.jar配置到classpath目录中; 2.1.3 Jenkins启动 可以有两种方法进行运行jenkins; a) 直接通过命令行 如下: /opt/jdk1.7.0_71/bin/java -jar /opt/jenkins.war --httpPort=8089 --logfile=/opt/jenkins/jenkins.log 说明:httpPort为jenkins运行的端口,默认端口为8080,上述命令其实让Jenkins运行在Winstone容器中; 以下有一些常用的参数:更多参数可以查看http://winstone.sourceforge.net/#commandLine Command Line Parameter Description --httpPort=$HTTP_PORT Runs Jenkins listener on port $HTTP_PORT using standard http protocol. The default is port 8080. To disable (because you're using https), use port -1. --httpListenAddress=$HTTP_HOST Binds Jenkins to the IP address represented by $HTTP_HOST. The default is 0.0.0.0 — i.e. listening on all available interfaces.  For example, to only listen for requests from localhost, you could use: --httpListenAddress=127.0.0.1 第页 --httpsPort=$HTTP_PORT Uses HTTPS protocol on port $HTTP_PORT --httpsListenAddress=$HTTPS_HOST Binds Jenkins to listen for HTTPS requests on the IP address represented by $HTTPS_HOST. --prefix=$PREFIX  Runs Jenkins to include the $PREFIX at the end of the URL.  For example, to make Jenkins accessible at http://myServer:8080/jenkins, set --prefix=/jenkins --ajp13Port=$AJP_PORT Runs Jenkins listener on port $AJP_PORT using standard AJP13 protocol. The default is port 8009. To disable (because you're using https), use port -1. --ajp13ListenAddress=$AJP_HOST Binds Jenkins to the IP address represented by $AJP_HOST. The default is 0.0.0.0 — i.e. listening on all available interfaces. --argumentsRealm.passwd.$ADMIN_USER Sets the password for user $ADMIN_USER. If Jenkins security is turned on, you must log in as the $ADMIN_USER in order to configure Jenkins or a Jenkins project. NOTE: You must also specify that this user has an admin role. (See next argument below). --argumentsRealm.roles.$ADMIN_USER=admin Sets that $ADMIN_USER is an administrative user and can configure Jenkins if Jenkins' security is turned on. See Securing Jenkins for more information. -Xdebug -Xrunjdwp:transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n Sets debugging on and you can access debug on $DEBUG_PORT. -logfile=$LOG_PATH/winstone_`date +"%Y%m-%d_%H-%M"`.log Logging to desired file -XX:PermSize=512M -XX:MaxPermSize=2048M -Xmn128M -Xms1024M -Xmx2048M referring to these options for Oracle Java  b) 在Web容器中运行 Jenkins可以运行在标准的Web服务器中,支持Tomcat、Jboss、WebLogic中,只需要将Jenkins.war放置到相应目录,启动服务就可以进行访问;推荐采用这个方式运行,方便配置和迁移。 2.1.4 Jenkins访问 验证jenkins是否运行正常,通过访问http://10.1.200.59:8089即可。 第页 Hudosn应用支持IE、FireFox等浏览器。 2.1.5 分布式jenkins安装 为了满足各种编译环境的需求,jenkins支持分布式,以jenkins agent的形式运行slave机。 1. 在jenkins的主机上,选择系统管理>管理节点 2. 新节点>输入名字 3. 选择Dumb Slave> OK 第页 4. 设置处理器的数量,一般以CPU核数来确定,如4核的一般写3 5. 选择远程根目录,在slave机上用来存放jenkins自身运行所要的文件 6. 使用方式:为了分担master机器的负载,可选尽可能多的使用本机器 或,只允许运行指定本机的任务 7. 启动方法:对于window推荐使用Launch slave agents via Java Web Start  8. 有效性:任何时间有效 第页 配置好了之后, 1. 从slave机器上打开浏览器,访问jenkins主机:http://yourjenkinsmaster:8080) 2. 在系统管理>管理节点,打开建立的节点。 3. 点启动按钮,jenkins agent就会从浏览器下载包需要的jar、jnlp包,然后启动。 第页 运行程序 在windows中,可以安装成为服务进程,但如果是运行selenium这种自动化工作的机器,则不建议这么做。 2.2 Jenkins基本设置 Jenkins的基本设置都在系统的后台设置中,具体路径为:系统管理->系统管理 第页 2.2.1 设置JDK 可以在这里进行JAVA_HOME设置,假如已经系统已经设置JAVA_HOME,可以不需要再进行配置,同时可以让Jenkins再安装一个JDK。 2.2.2 设置Maven 第页 2.2.3 设置ANT 可以在这里进行ANT_HOME设置,假如系统已经设置了ANT_HOME,可以不需要再进行配置,同时可以让Jenkins安装一个最新的ANT。 备注:为了让配置更加简单,建议在系统级设置JAVA_HOME和ANT_HOME,MAVEN_HOME,便于系统的迁移。 2.2.4 配置邮件信息 系统能够在执行计划完成后发送结果邮件,需要配置邮件服务器的相关信息: 上面还需要配置Jenkins的URL地址,作为后期访问地址,一旦设定URL,就不要轻易修改。左边显示的可过滤的条件及属于当前用户的BUG 2.3 创建任务 在Jenkins主菜单点击“新建任务”,出现下图: 第页 键入任务名称,选择“Build a free-style software project”选项,点击“OK”按钮后,出现下面的界面: 第页 说明: a) Project name:项目(任务)名称,项目(任务)名称不能重复,后面通称任务; b) Description:项目描述,主要对任务进行简要说明; c) Discard old builds:是否保留过去的构建,默认是保留。(帮助:这里控制着您想要在Jenkins所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译构件等等)。Jenkins为此提供了两个标准:1。时间驱动。在Jenkins中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。2。数量驱动。在Jenkins中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。Jenkins也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。) 第页 d) This build is parameterized : 如果选择此选项,Jenkins将允许您提供一套任意的键值对参数,它们会被传递到构建过程里。配置的参数往往是构建运行环境中的一些环境变量。(帮助:当您使用了Jenkins的各种自动化,有时要求在构建过程中提供一组用户的输入,使用“parameterize”就能够更方便构建。例如,您可能会设立一个按需测试,在那里用户可以提交一个二进制文件的压缩文件来进行测试。 e) Disable Build:禁止此任务进行构建,默认是不禁止; f) Execute concurrent builds if necessary(beta): g) Advanced Project Options 1) Quite period:构建前等待时间; 2) Retry Count:从SCM仓库中取出尝试时间; 3) Block build when upstream project is building:假如上一个仍在构建过程中,停止本次构建任务; 4) Use custom workspace:指定当前任务的workspace,否则默认为JENKINS_HOME的工作目录 h) Source Code Management:指定编译源代码的获取方式: 1) None:手动方式; 2) CVS:从CVS仓库中获取; 备注:CVS通过Module(s)获取多个项目工程 3) SVN:从SVN仓库中获取; 备注:SVN通过“Add more locations”来添加多个工程,在SVN的URL中需要添加用户名密码信息,例如: svn://username:passwd@192.168.1.15/SKELETON-V2.0/trunk/program/source/skeletonCommon i) Builds Triggers:设置构建触发器 1) Build after other projects are built:设置构建的流水线,配置在设置的任务构建完成后自动构建此任务,进行设置后,可以在任务统揽中看到以下 第页 “下游项目说明” 2) Trigger builds remotely (e.g., from scripts):设置远程触发进行任务构建; 3)  Build periodically:设置构建频率,设置跟Quartz CronTrigger设置雷同; 4)  Poll SCM:设置从SCM库中检查源代码是否更新: 备注:关于第三和第四两点,基本配置为 分钟 小时 天 月 星期 举例: 每分钟进行集成 * * * * *, 每5分钟进行集成 5 * * * *,每天12点和23整点进行集成 0 12,23 * * * j) Build Environment:设置构建环境设置 1) Tool Environment:设置工具的环境变量 2) Create a formatted version number:设置构建的版本号 k) Build:执行构建 构建支持6种方式,shell(运行于Linux环境)、Maven(支持Maven编译)、Command(windows批处理命令)、Ant、EasyAnt、Export job runtime parameters。 举例: 1) Ant: 备注: Ø Targets主要是执行ant脚本中哪几个部分,可以添加多个; Ø Build File:需要指定Ant脚本的物理位置; Ø Properties:添加Ant指定的属性; Ø Java Options:设置运行java时的属性,例如内存、堆大小等; 2) Command 备注:执行Windows的批处理命令,这里不能利用Hodson设置的变量; l) Post-build Actions 1) Publish Javadoc:设置构建时产生JavaDoc时的文件目录; 2) Archive the artifacts:设置构建后哪些文件需要进行归档处理; 3) E-mail Notification:邮件提醒 第页 备注:可以向多个人发送邮件,通过“;”进行分割 4) 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 章 提高篇: 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应用服务器、Java.net版本库等等; 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_HOME\lib目录下; 2. 设置FINDBUGS_HOME目录为解压目录; 3. Build.xml文件中配置FindBugs配置: a) 设置findBugs在build.xml中的路径 b) 声明Findbugs任务 c) 创建FindBugs任务,例如: d) Eclipse中配置Findbugs 选择Eclipse->Windows-Perference,对ant进行编辑,选择Runtime i. 配置findbugs-ant.jar到Classpath目录下下,可以通过选择“Add External JARS”; ii. 对Tasks进行配置,增加一个Task,命名为findbugs,选择Location为添加的findbugs-ant.jar的物理位置,并指定具体为哪个类,如下图: e) 在Jenkins中设置Findbugs 选择需要配置任务进行配置,勾选其中findbugs选项,如下图: f) 编译成功后,fingbugs的结果和趋势图 第页 可以点击具体的链接进行分析findbugs的认定结果和具体的代码,趋势图 3.1.2 Ftp插件配置 a) 在系统的插件管理中下载FTP插件; b) 在系统管理中配置FTP服务器的相关信息,如下图: c) 在选定的任务中配置FTP 第页 在这里选择需要上传的FTP服务器,并指定源文件和目的地址。 3.1.3 Junit插件 3.1.4 通过远程访问触发 Jenkins支持远程触发方式进行构建,具体设置在当前任务的设置中,如下图: 用户通过访问上面的URL就可以进行相应的构建。 3.1.5 WebLogic.Deployer WebLogic Server提供以下四种方式来帮助你配置和部署应用系统: a) Weblogic.Deployer b) 管理控制台 c) WLST Ø Weblogic.Deployer weblogic.Deployer 提供基于命令行的界面来执行基本和高级部署任务。当希望命令行访问 WebLogic Server 部署功能时,或者当需要使用管理控制台执行不受支持的部署任务时,使用 weblogic.Deployer。 Ø 管理控制台 管理控制台提供一系列基于 Web 的部署助手,这些助手可以指导您完成部署过程。管理控制台还提供控件可用于更改和监视部署状态、在部署设备启动并运行时更改所选的部署描述符值。 当需要以交互方式执行基本部署功能并且可以访问受支持的浏览器时,请使用管理控制台。 Ø WLST WebLogic 脚本工具 (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 要分配给新部署的应用程序或独立模块的部署名称,可选。 详细可以参考: http://edocs.weblogicfans.net/wls/docs92/deployment/wldeployer.html#wp1024422 3.2 安全篇 Jenkins安装完成后,默认是不进行安全控制的,需要在系统配置中添加安全控制后,具体位置在系统管理的安全域中,Jenkins支持Jenkins专用用户数据库、LDAP、Servlet容器代理、MySql数据库。授权策略包括采用安全矩阵、登陆后可以做任何事、任何用户可以做任何事(没有任何限制)、项目矩阵授权策略、遗留模式等。建议采用Jenkins专用数据库,安全策略采用安全矩阵方式,已经能够基本满足现有的模式。如下图: 选择Jenkins专用用户数据库后,勾选允许用户注册选项。在添加用户或组,对其进行附权限。 用户注册在首页的右上角,如下图 点击注册后,出现如下图: 第页 添加用户的基本信息,点击注册按钮后,用户注册完成,用户没有赋权限,登陆后的界面如下: 备注:对用户先赋权限或先注册再赋权限没有先后顺序。 3.3 个性化设置 Jenkins对用户视图支持个性化定制,保证登陆用户只关注自身关注的项目视图,用户登陆后,默认一般显示如下图: 可以点击“+”增加个性化视图,出现如下视图: 选择List View选项,填写“View name”,以及需要的任务选项,同时可以选择需要展示的列,选择完成后保存即可,可以在首页上显示。 第页 用户登陆后,可以选择“Personal View”或“My Views”查看个性化界面。 第页 第 4 章 常见问题 4.1 edit lock问题 现象: 当在构建时命令输出行提示: <2010-11-24 下午04时20分49秒 CST> [Deployer:149163]The domain edit lock is owned by another session in non-exclusive mode - this deployment operation requires exclusive access to the edit lock and hence cannot proceed. 解决方法: 到weblogic控制台登陆后,应改为Lock&Edit状态再构建。 4.2 IOException: Unable to delete问题 现象: 当构建时报不能删除之前的文件时,具体信息如下: Checking out a fresh workspace because there's no workspace at D:\Jenkins\jobs\gaza\workspace\gaza java.io.IOException: Unable to delete D:\Jenkins\jobs\gaza\workspace\gaza at Jenkins.Util.deleteFile(Util.java:261) at Jenkins.Util.deleteRecursive(Util.java:303) at Jenkins.Util.deleteContentsRecursive(Util.java:222) at Jenkins.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:726) 第页 at Jenkins.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:660) at Jenkins.FilePath.act(FilePath.java:753) at Jenkins.FilePath.act(FilePath.java:735) at Jenkins.scm.SubversionSCM.checkout(SubversionSCM.java:653) at Jenkins.scm.SubversionSCM.checkout(SubversionSCM.java:601) at Jenkins.model.AbstractProject.checkout(AbstractProject.java:1119) at Jenkins.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) at Jenkins.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) at Jenkins.model.Run.run(Run.java:1324) at Jenkins.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at Jenkins.model.ResourceController.execute(ResourceController.java:88) at Jenkins.model.Executor.run(Executor.java:139) Finished: FAILURE 解决方法: 到Jenkins安装的机器下,将当前打开D:\Jenkins\jobs\gaza\workspace\gaza的目录关闭,当前有在读的文件,Jenkins对当前在读文件不进行删除。 4.3 not recognized as a valid application type 问题 现象: Ant打包已完成,在推到weblogic时报以下错误 [J2EE:160177]The application at "/weblogic923/bea/user_projects/domains/zjport/servers/gaza/stage/gaza/gaza" was not recognized as a valid application type. If this is an EAR file, please ensure the META-INF/application.xml exists. EJB-JARs should have a META-INF/ejb-jar.xml. WAR files require a WEB-INF/web.xml, and RARs require a META-INF/ra.xml. A JMS deployment should be an XML file whose name ends with "-jms.xml". A JDBC deployment should be an XML file whose name ends with "-jdbc.xml". For other application types, please consult the WebLogic Server documentation. 解决方法: 主要是因为deploy中的名称及jdbc配置中的名称与server相同,在命名时有时相现就会发生此问题,建议取不同的名称。 第页 第 5 章 待解决问题 5.1 部署文件完整 按目前自动部署方式,对于开发人员增加的配置文件是否写全无法验证,因除根据环境变更改的可以部署完成后若功能不能成功可以验证时,但不需要根据环境变更配置的开发人员又没在部署说明写出的在生产环境发布时未发布。 5.2 二次变更同步操作冲突 当前一个变更未测试完成,后一个变更已提交冲突(建议前一个变更发布后再开展测试) 5.3 对每个项目单独一个weblogic进行部署还是合在一个server进行部署问题 合在一起: 好处:同生平环境同步,保证其它项目包的同步,若包之间冲突存在也能发现 不利:当一个项目已部署完成,正在测试时,另一个项目需要部署测试,当部署过程需要查问题时,另一个项目无法开展正常测试存在冲突,每次部署前需要先同步zjport下的stage包。当不能二个项目同时发布。 分server: 好处:部署上不会冲突 不利:与生产环境不同步,有些包更新同步无法只障。 5.4 对于数据交换是否需要配置 第页 第 6 章 其它说明 6.1 CI挑战 CI能够帮助您的开发团队应对如下挑战: Ø 软件构建自动化 :使用CI,您只要按一下按钮,它会依照预先制定的时间表,或者响应某一特定事件,就开始进行一次构建过程。如果您想取出源码并生成构件,该过程也不会局限于某一特定IDE、电脑或者个人。 Ø 持续自动的构建检查 :CI系统能够设定成持续地对新增或修改后签入的源代码执行构建,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断要求确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在手动检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。 Ø 持续自动的构建测试 :这个是构建检查的扩展部分,这个过程将确保当新增或修改代码时不会导致预先制定的一套测试方案在构建构件后失败。构建测试和构建检查一样,失败都会触发通知(Email,RSS等等)给相关的当事人,告知对方一次构建或者一些测试失败了。 Ø 构件生成后续过程的自动化 :一旦自动化检查和测试的构建已经完成,一个软件构件的构建周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。只有这样,构件才能更迅速地提供给用户使用。 6.2 ANT基本知识 ANT通配符 通配符 说明 ? 匹配任何单字符 * 匹配0或者任意数量的字符 ** 匹配0或者更多的目录 第页

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档