持续集成测试包发送成功了,但是还是报错,帮忙看下

组装的电脑运行卡,发上配置来,帮忙看下,是不是哪里搭配的不合理_百度知道
组装的电脑运行卡,发上配置来,帮忙看下,是不是哪里搭配的不合理
电脑型号 X64 兼容 台式电脑操作系统 Windows 7 旗舰版 64位 ( DirectX 11 ) 处理器 英特尔 Core i7-2600K @ 3.40GHz 四核主板 华擎 Z68 Pro3 (英特尔 Z68 芯片组)内存 8 GB ( 海盗船 DDR3 1333MHz )主硬盘 希捷 STAS ( 1 TB )显卡 Nvidia GeForce GTX 470 ( 1280 MB / 索泰 )显示器 明基 BNQ7B1A BenQ V2220HP ( 21.7 英寸 )光驱 日立-LG DVDRAM GH24NS50 DVD刻录机声卡 瑞昱 ALC892 @ 英特尔 6 Series Chipset 高保真音频网卡 瑞昱 RTL8168E PCI-E Gigabit Ethernet NIC / 华擎用着用着就卡了
也不运行什么大型软件
这个配置应该不会卡啊!你的主板牌子和内存的牌子都不怎么样!你是怎么卡的?打大型游戏卡,还是开机无论做什么都卡?你能不能把问题描述清楚点?
其他类似问题
为您推荐:
其他7条回答
可以说全部都有啊!
为了那更多的利润!!现在假货很多啊!为了那更多的利润,CPU造假由来已久,无论是INTEL还是AMD的CPU,在各种不同的时期都曾出现了很多假冒品。
CPU的制假超级大法首先就是REMARK&打磨&,其次就是以散装来冒充盒装的。
最令人头疼的是这些假货在外观上和真的虽有细微差别但很难辨别,你仅仅从字迹是否清晰上辨别是不行的,最可行的识别办法之一是插在主板上试的时候一定要选择能软跳线的板子,点亮之后,屏幕上就会自动显示出它的本来面目“650E”;千万不要用只硬跳线的主板,因为商家把外频调到133后,上这种CPU,就会显示出“866”,这也是商家迷惑消费者的主要手段。打磨的让认一看就出来啊!!
现在有的JS甚至已不屑于这种费功费力的REMARK了,干脆就直接给一些CPU散装的CPU加...
搞不懂为什么这么霸气的cpu和显卡内存配这么个牌子的主板……一般电脑卡的原因是系统问题,建议重做系统,你的配置应该不是什么硬件问题
主板怎么样????多清理垃圾就好了 运行程序不要太多
用驱动精灵软件更新下驱动
主板次了点。你的电脑已经很好了, 盗版WIN7??
*CPU Intel 酷睿 i3 530(盒)
Intel I3双核 ,虽然是双核但是却是 4线程,性能强劲,集成4MB三级缓存,稳定性超强。升级空间非常大,可以上 I5 和低端I7 。
*主板 技嘉 GA-H55M-D2H
一线主板厂商 技嘉出品,采用H55芯片组,稳定 和兼容 更加出色,做工出色,全固态电容品质可靠 带有HDMI接口 性价比不错。
*内存 金士顿 2GB DDR3 1333 ¥150
时下的主流配置, 2G DDR3 1333
性价比高。
*硬盘 WD 500GB 7200转 16MB(串口/RE3)
西数 WD 500G 应该能满足你的需求。
显卡 影驰 GTS450黑将 ¥899
N卡的准一线品牌 ,最新的GTS450显卡,GTS250的替代产品,游戏3D表现非常出色压到5750,显卡规格 1G GDDR5 0.5ns 128位 支持DX11,性价比极高,游戏表现极强...
看我名字!专业解决电脑故障
电脑运行的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境。
, 软件工程师,
刘华婷是 IBM CSTL 的一名软件开发工程师,主要从事 Director Build 方面的工作,对持续集成有浓厚的兴趣。
持续集成概述什么是持续集成随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。持续集成的核心价值在于:
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。持续集成的原则业界普遍认同的持续集成的原则包括:1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 IBM Rational ClearCase、CVS、Subversion 等;2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;3)需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个小时构建一次;4)必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。持续集成系统的组成由此可见,一个完整的构建系统必须包括:
一个自动构建过程,包括自动编译、分发、部署和测试等。
一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
一个持续集成服务器。本文中介绍的 Jenkins 就是一个配置简单和使用方便的持续集成服务器。Jenkins 简介Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。下面将介绍 Jenkins 的基本功能。Jenkins 的安装非常简单,只需要从 Jenkins 的主页上下载最新的 jenkins.war 文件然后运行 java -jar jenkins.war。同时,还可以点击 Jenkins 页面上的 launch 按钮完成下载和运行 Jenkins。图 1. Jenkins Launch 按钮 启动 Jenkins 后,会有一个后台进程在命令行模式下运行。此时在浏览器地址栏中打开 http://localhost:8080 就可以看到 Jenkins 的页面了。Jenkins 的可贵之处在于具有非常高的可用性,从它的界面中能很轻松地完成各种配置,更多的配置和使用信息,可以在 Jenkins 的官方网站上查询。图 2. 命令行模式下运行 Jenkins图 3. Jenkins 主界面 非常有趣的是,Jenkins 还提供了非常丰富的插件支持,这使得 Jenkins 变得越来越强大。我们可以方便的安装各种第三方插件,从而方便快捷的集成第三方的应用。比如 Jenkins 提供了对于 IBM Rational ClearCase 的插件支持。图 4. Jenkins 可以集成 ClearCase 插件
此外,Jenkins 提供了丰富的管理和配置的功能,包括系统配置、管理插件、查看系统信息、系统日志、节点管理、Jenkins 命令行窗口、信息统计等功能。试试看,您就会发现 Jenkins 非常好上手使用。图 5. Jenkins 提供了丰富的管理功能基于 Jenkins 快速搭建持续集成环境
正如前文中所描述的那样,一个持续集成环境需要包括三个方面要素:代码存储库、构建过程和持续集成服务器。对 Jenkins 有了初步了解后,我们通过一个实例来集中展示如何快速搭建一个简单的基于 Jenkins 的持续集成环境。
假设我们使用的代码存储库是 IBM Rational ClearCase。Jenkins 提供了对 ClearCase 的插件支持,它能方便地让我们连接到 Base ClearCase 或者 UCM ClearCase,使其成为 Jenkins Project 的代码控制器。另外,这个插件是基于 cleartool 命令的,所以必须在 Jenkins 的持续集成服务器上安装 ClearCase 的客户端程序。
在 Jenkins 的插件管理界面中选择 ClearCase Plugin,点击页面下方的 Install 按钮。图 6. 选择 ClearCase 插件
在打开的页面中提示安装完成后,Jenkins 需要重新启动来激活这个插件。重新执行 java -jar Jenkins.war 后,在 Jenkins 的页面中,我们就能看到 ClearCase plugin 已经被安装到 Jenkins 了。图 7. ClearCase 插件安装成功
类似 IBM Rational ClearCase,SVN(subversion)是目前比较流行的版本管理工具。很多开源软件都是用 SVN 作为代码版本管理软件。为了让实例更具有代表性,本文中我们使用 SVN 作为代码存储器。
接下来,我们开始新建一个 Jenkins 项目, 由于我们需要连接 SVN 的代码存储器, 我们选择 Build a free-style software project。图 8. 新建 JenkinsTest Job
然后我们就可以很方便的配置这个 JenkinsTest 项目了。Jenkins 很人性化的一点是在每个配置项的右侧都有一个帮助的图标,点击这个图标,Jenkins 会告诉您如何配置这个配置项。图 9. 配置 JenkinsTest根据实际的 SVN 服务器服务器信息配置 Source Code Management,这能让 Jenkins 知道如何从哪里获取最新的代码。本例中假设 Repository 就在本地。图 10. 配置连接到 SVN 服务器
根据开发需要,假设每一个小时我们需要重新构建一次。选择 Build periodically,在 Schedule 中填写 0 * * * *。
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 0 * * * * 表示的就是每个小时的第 0 分钟执行一次构建。图 11. 选择如何触发构建
接下来就是要添加 build 的步骤了。Jenkins 提供了四个选项供我们选择,可以根据需要执行或调用外部命令和脚本。图 12. 四种 build step 供选择
在本例中,我们通过调用和执行 Windows batch command,将 SVN repository 中 Java 代码编译并生成 Jar 文件。也可以根据项目的实际编写自己的 shell 脚本配置在这里。图 13. 配置 Execute Windows batch command
选择和配置其他的选项,比如邮件提醒,然后点击 save 保存。图 14. 配置邮件提醒
接下来的每小时的第 0 分钟,JenkinsTest Job 就会被构建。我们可以在 Jenkins 中观察构建的进度和最终的状态——成功或者失败。太阳代表之前的构建没有任何失败,蓝色的小球代表构建成功。图 15. JenkinsTest 开始构建
同时我们可以点击 JenkinsTest 查看单次构建的 Console 的输出结果。从中我们能看到构建的第一步是从 SVN 服务器上 check out 代码,然后调用我们先前配置的 Windows batch command。图 16. JenkinsTest 构建的 console 输出
最后,我们可以看到 build 的最后结果 Success,表明本次构建成功。图 17. 构建成功的 Console 输出
接下来我们再次新建一个 Jenkins 的 Job,用于将生成的 build 分发到不同的节点上。这次 build triggers 我们选择 Build after other projects are built,让这个 Job 在 JenkinsTest 成功 build 后触发。这样一来就能达到我们自动 build 和自动分发的功能。图 18. 新建 Distribute job
不同的是,这次我们选择调用 Ant 脚本来完成分发的工作。只需要将 Ant 脚本的 XML 的文件配置在 Targets 中供 Jenkins 调用。图 19. Distribute 调用外部 Ant 脚本
然后我们就可以在 Jenkins 中观察构建的状态了。一旦构建失败我们能看到相应的警示图标,同时,如果配置了邮件提醒,相关人员也会受到邮件。记住我们先前所提醒的那样,分析和处理构建的失败是优先级最高的工作。接下来,我们还可以加入更多的 Jenkins 项目来实现自动化测试等功能,让持续集成更方便有效地服务于项目开发。图 20. 查看持续集成状态结束语
本文简单介绍了持续集成的概念并着重介绍了如何基于 Jenkins 快速构建持续集成环境。通过具体实例的描述,相信读者对 Jenkins 的基本功能和实现方法有个更清楚地认识和理解。其实,Jenkins 的功能远不至文中所述的这些,Jenkins 还有详尽的日志处理和持续集成构建状态的分析等功能。希望在进一步的学习和应用中与大家分享。
查阅 Wikipedia,了解 。
参考 首页,下载 Jenkins 最新版本和了解 Jenkins 的使用。
,学习关于 ClearCase 技术的相关文章,扩展 ClearCase 方面的技术。
, 学习 SVN 相关的技术。
“”(developerWorks,2010 年 4 月):本文将介绍如何利用 Rational Team Concert(RTC)在敏捷开发过程中进行持续集成。详细说明了如何在 RTC 中通过采取一系列的步骤和脚本开发,来保证继续集成过程的连续和提高整个项目的效率。同时还阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,高效化。“”(developerWorks,2010 年 6 月):本文分析了银行软件开发中心应重视持续集成及应用生命周期管理平台的问题。“”(developerWorks,2011 年 2 月):本文将介绍持续集成的意义、概要描述 Lotus Symphony 的开发模式,及如何用 Rational BuildForge 实现对 Symphony 开发的支持。从应用的角度讲述,如何应用 BuildForge 实现软件产品的持续集成以及构建管理。:这里有数百篇关于 Java 编程各个方面的文章。
加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Java technologyArticleID=776765ArticleTitle=基于 Jenkins 快速搭建持续集成环境publish-date=为什么要持续集成?_百度知道
为什么要持续集成?
提问者采纳
在没有应用持续集成之前,传统的开发模式是项目一开始就划分模块,然后等所有的代码都开发完成之后再集成到一起进行测试,随着软件技术的发展,各种软件方法百花齐放,软件规模也在扩大,软件需求越来越复杂,软件已经不能简单地通过划分模块的方式来开发,需要项目内部互相合作,划 分模块这种传统的模式的弊端也越来越明显,由于很多 bug 在项目的早期就存在,到最后集成的时候才发现问题,开发者需要在集成阶段花费大量的时间来寻找 bug 的根源,加上软件的复杂性,问题的根源很难定位,甚至出现不得不调整底层架构的情况,在这个阶段的除虫会议(bug meetings)特别多,会议的内容基本上都是讨论 bug 是怎么产生的,最后往往发展成为不同模块的负责人互相推诿责任。持续集成最大的优点是可以避免这种传统模式在集成阶段的除虫会议。持续集成主张项目的开发人员频繁的将他们对源码的修改提交(check in)到一个单一的源码库,并验证这些改变是否对项目带来了破坏,持续集成包括以下几大要点:访问单一源码库,将所有的源代码保存在单一的地点(源码控制系统), 让所有人都能从这里获取最新的源代码(以及以前的版本)。支持自动化创建脚本,使 创建过程完全自动化,让任何人都可以只输入一条命令就完成系统的创建。测试完全自动化,要求开发人员提供自测试的代码,让 任何人都可以只输入一条命令就运行一套完整的系统测试。提供主创建,让任何人都可以只输入一条命令就可以开始主创建。提倡开发人员频繁的提交(check in)修改过的代码。持续集成的关键是完全的自动化,读取源代码、编译、连接、测试,整个创建过程都应该自动完成。对于一次成功的创建,要求在这个自动化过程中的每一步都不能出错,而最重要的一步是测试,只有最后通过测试的创建才是成功的创建。在持续集成里面创建不再只是传统的编译和连接那么简单,创建还应该包括自测试,自测试的代码是开发人员提交源码的时候同时提交的,是针对源码的单元测试(源自 XP 的实践),将所有的这些自测试代码整合到一起形成测试集,在 所有的最新的源码通过编译和连接之后还必须通过这个测试集的测试才算是成功的创建。这 种测试的主要目的是为了验证创建的正确性,M cConnell 称之为冒烟测试,在 持续集成里面,这 叫做集成验收测试Build Verify Test,简称 BVT。BVT 测试是质量的基础,QA 小组不会感受到 BVT 的存在,他们只针对成功的创建进行测试(如功能测试)。BVT 测试应该尽量的详尽,详尽的测试才能发现更多的问题,而由此得到的反馈结果也更有参考意义,测试应该全部执行完毕,这样得到的反馈结果才是完整的,而不是遇到错误就放弃测试过程。持续集成和日创建相比还有以下特点:持续集成强调了集成频率,和日创建相比,持续集成显得更加频繁,目前推荐的最佳实践是每一个小时就集成一次。持续集成强调及时反馈,日创建的目的是得到一个可以使用的稳定的发布版本,而持续集成强调的是集成失败之后向开发人员提供快速的反馈,当 然成功创建的结果也是得到稳定的版本。日创建并没有强调开发人员提交(check in)源码的频率,而持续集成鼓励并支持开发人员尽快的提交对源码的修改并得到尽快的反馈。从上面列出的续集成和日创建相比的特点来看,很明显, 频率和反馈这两个词出现的特别多,持 续集成有一个与直觉相悖的基本要点,那 就是 经常性的集成比偶尔集成要好。Martin Fowler 认为对于持续集成来说,集成越频繁,效果越好 ,如果你的集成不是经常进行的(少于每天一次),那么集成就是一件痛苦的事情,如果集成偶尔才进行一次(一周甚至一个月), 等到集成阶段发现bug,然后找原因解决bug,会耗费你大量的时间与精力,而且这种方式有点象传统的集成模式,这违背了持续集成的初衷。根据Martin Fowler 的观点,项目 bug 的增加和时间并不是线性增长的关系,而是和时间的平方成正比,两次集成间隔的时间越长,bug 增加的数量越超过你的预期,解决 bug 付出的工作量也越大,而你越觉得付出的工作量越大,你就越想推迟到以后去集成,企图到最后一次性解决问题,结果 bug 产生的就更多,导致下一次集成的工作量更大,你越感觉到集成的痛苦,就越将集成的时间推后,最后形成恶性循环。因此如果集成的结果是让你感到痛苦,也许就说明你应该更频繁地进行集成。频繁的集成和及时的反馈鞭策着项目小组积极的面对问题,而 不是将问题推到最后来解决,如 果方法正确,更频繁的集成应该能减少你的痛苦,让你节约大量时间。因为持续集成最终是通过测试来验证创建,所以你会发现对于持续集成的频率的要求跟Kent Beck 提出的测试驱动的开发方法里面测试第一的理念完全一致。需要注意的是从项目的一开始就引入持续集成可以尽早的发现 bug,但是并不代表持续集成可以帮你你抓到所有的 bug。持续集成的排错能力取决于测试技术,众所周知,无法证明已经经过测试的代码就已经找到了所有的错误。
其他类似问题
为您推荐:
持续集成的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁持续集成环境hudson+nexus+maven搭建文档_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
持续集成环境hudson+nexus+maven搭建文档
持​续​集​成​环​境​搭​建​经​验​分​享
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
随着软件开发的发展,越来越多的机构都开始使用 Rational Team Concert(RTC)来管理和开发项目。持续集成是敏捷开发方法中非常重要的实践,本文希望通过介绍笔者在项目中使用 RTC 进行持续集成的实践和经验,来为使用 RTC 的人员进行项目开发提供一些方法和建议。本文将首先介绍持续集成和 RTC 的相关概念,然后再具体介绍项目中使用 RTC 来实现持续集成方法,包括:源代码管理、构建定义、多环境扩展、自动部署等方面。
, 软件工程师,
魏进锋,从 2009 到 2010 年在 IBM CDL 实习,于 2010 年正式加入 IBM,现在在 IBM GTS EADI 部门做 J2EE 开发工作。对敏捷开发和 J2EE Web 开发比较有经验,并对并行计算和云计算比较感兴趣。
, 软件工程师, IBM
马军辉 2010 年加入 IBM DSW 团队,目前在 IBM 中国软件开发中心(CDL)Business Transformation & Service 部门工作,主要负责软件开发工作。
, 软件工程师, IBM
李月萍,于 2010 年正式加入 IBM。现在在 IBM GTS EADI 部门做 J2EE开发工作。擅长于 J2EE Web 开发工作且有丰富的敏捷开发实践和经验。
下载试用版:
下载更多的 ,并加入 ,参与在线交流。简介持续集成简介在如今敏捷开发方法已成为主流的软件开发市场,周期性快速交付已被业界所广泛接受并认可。在这种模式下持续集成可以最大化地发挥它的产能。持续集成是持续地进行软件自动化构建,帮助开发者尽早发现和解决缺陷从而进行高质量交付的一套开发原则和实践,同时持续集成也是敏捷项目开发周期性快速交付的基础保证。持续集成不仅仅是指软件构建的过程,更是一个旨在提升软件质量的流程自动化框架,例如自动化的版本构建,单元测试,代码静态分析,版本部署及验证,反馈机制等。自动化是持续集成所强调的重点所在,自动化也是符合软件开发的趋势,通过计算机将人工劳动力从重复低级的工作中解脱出来投入到更智慧的工作中去,从而提高效率降低错误风险。提升软件质量是持续集成的终极目标,持续集成本身并没有限定通过何种方式来提升软件质量,它自身也是一个开放性的框架,任何对提升软件质量好的实践均有可能纳入其中,但是它确实建议了很多也被业界公认的实践,例如将单元测试,代码分析纳入发布流程等。常言道:工欲善其事,必先利其器。企业在实施持续集成之前首先需要选择合适的工具来支撑,目前业界常用的持续集成工具有 Apache's Continuum、Cruise Control,IBM 的 BuildForge 以及 Rational Team Concert 等。在本文中我们将以 IBM Rational Team Concert 为例来详细介绍 IBM 中国开发中心某产品团队是如何使用该工具来实现定制化的持续集成解决方案。Rational Team ConcertIBM Rational Team Concert(RTC)是构建在 IBM Rational 面向软件交付技术的下一代协作平台 Jazz 上的第一个商用产品。何为 Jazz?在爵士乐队演奏一首乐曲时,需要乐队中的每位成员既分工明确又互相关注,默契配合。软件开发过程与之类似,软件开发通常由一组职责分明的团队人员共同承担完成,他们为了一个共同的目标交付高质量软件产品而一起工作,这是一个相互协作共同努力的过程。因此,IBM 把其推出的这套用于提高软件开发效率的软件平台称为 Jazz。从广义上来说,我们现在所说的 Jazz, 是指包括 Jazz 技术平台及其基于该平台的系列工具在内的 Jazz 大家族。Jazz 技术平台是一个基于团队协作模式,以提高软件开发效率为宗旨,以 Eclipse client 端的插件技术,Web 客户端的 Dojo Ajax 技术,Web 服务器端的 REST service 技术和基于 EMF 存储模型为核心的,可伸缩、可扩展的平台。目前,以 Jazz 平台为基础的工具主要有 RTC(Rational Team Concert)、RQM(Rational Quality Manager)和 RRC(Rational Requirements Composer)。RTC 构建于可扩展的 Jazz Foundation 上,提供了从任何基于 Jazz 的工具到任何其他基于 Jazz 的产品工具的无缝链接。RTC 是一个可实时相互协作的软件交付环境,可以帮助跨地域分布的开发团队简化协作开发过程,并使其软件交付过程实现自动化管理。是一个针对各种软件开发人员,包括系统架构师,项目经理,软件开发工程师等的团队协作平台。它覆盖整个软件开发生命周期,提供对包括过程管理,以敏捷开发技术 ( 如 Scrum 和 Eclipse Way)为模板的项目计划、构建管理、源码版本控制等各个方面的支持,并以 work item 机制跟踪协调每个开发人员的任务和工作流程。 RTC 在项目规划和工作项评估方面具有强大的团队协作能力,能加快项目的执行速度,同时能提供卓越的项目透明性。RTC 集成了源代码控制、工作项管理和构建管理等强大功能,是一个可伸缩、轻量级的应用生命周期管理解决方案,是面向企业中敏捷开发团队的协作式开发平台,可以大大提升软件开发团队的协作能力、创新能力和生产率。在初步了解了 RTC 的基本特点和强大功能之后我们来看在实际项目中如何有效的使用 RTC 来实现持续集成。持续集成案例实现RTC 有着非常强大的自动构建能力,它可以提供工作任务的管理,项目计划的安排,代码版本管理控制,自动构建可用版本,生成构建结果报告等,这些过程构成了项目的持续集成过程。RTC 提供了构建引擎(build engine)来负责构建(build),首选,启动构建引擎,并和 RTC 服务器建立了连接。再定义在构建引擎上运行的构建定义(Build Definitions),在这个定义中,需要设定编译哪些模块的代码,需要调用哪个 ANT 文件来启动编译,和一些编译过程中的参数的设定。通过在构建定义上,点击请求构建,就可以发起一个构建请求(Build Request),触发一次构建过程。在这里选择需要的构建参数,这个过程就会在后台运行。每一个开发人员,只要做了任何的代码改变和提交,都可以请求触发新的构建过程,来保证我们代码的有效性。申请一个新的构建如下图所示:图 1. 请求构建可以定义一些开关变量,在每次构建开始之前,通过设置开关的 true/false 值来控制构建步骤。图 2. 构建参数配置当构建结束后,RTC 服务器会提供构建结果报告,开发人员可以追踪到这次构建的详细信息,例如:构建包含的变更集,有哪些新的源代码参与了构建,关联在哪一次项目发布(Releases)中等。此外,RTC 还提供创建详细 BOM 信息(bill of materials),以确保构建重现能力(build reproducibility)。图 3. 构建报告该项目使用 RTC 来进行产品的从开发到版本交付端到端流程管理,项目中整体的构建流程定义如下:(1) 初始化构建环境,从 RTC 检出最新的项目源代码;(2) 调用 ant 脚本完成项目代码的编译;(3) 对 java 代码运行单元测试;(4) 对 SQL 脚本运行单元测试;(5) 将编译后的代码进行打包;(6) 自动部署产品;(7) 部署验证;(8) 发送构建通知持续集成实现简介源代码管理RTC 设计了组件(Component)来存放开发中的工件,很好地与系统架构的组件相对应;变更集体现了组件的变更历史。RTC 提供了工作空间(Repository Workspace)和流(Stream)实现个人和团队工作的独立性,实现团队级别的并行开发;同时 RTC 还提供了先进的挂起(Suspend)和继续(Resume)功能,给个人提供工作级别的并行。另外,RTC 还支持并行开发出现的冲突(Conflicts)解决;提供基线(Baseline)支持等。例如,该项目中,使用了 2 个 component。一个叫 SQO-Core,另一个叫做 SQO-Optional。常用的和构建相关的 projects 会放在 SQO-Core 里,和构建不相关的 projects 可以放到 SQO-Optional 这个 component 里。这样可方便在构建过程中指定 component,引擎只加载此 component 下的所有 projects,甚至可以通过在 build definition 里定义一些 rule,来具体指定此 component 下的哪几个 projects,从而加快构建过程。构建步骤Jazz 构建系统提供了集成的构建平台以方便快捷地实现项目构建和持续集成。Jazz 本身并没有真正的构建的能力,但是它却提供了一整套框架藉由构建脚本来实现项目构建。通过 Jazz 构建系统,可以实现与 Jazz 源代码管理器的无缝结合,并可方便的追踪到构建中的变更集,制定构建计划,生成构建日志以及发送构建结果通知。要实现项目构建,首先需要以下几个步骤:实现构建脚本制定构建定义以调用构建脚本定义构建引擎来运行构建启动构建引擎实现构建脚本RTC 支持多种脚本语言,本文描述的工程选用的 ANT 脚本。可以根据工程的大小,编写合适的脚本,可以放在一个文件中,也可以通过文件进行调用。下面是一个 ANT 脚本的例子。清单 1. ANT 脚本示例&?xml version="1.0" encoding="UTF-8"?&
&project name="shared-master" default="all" basedir="."&
&taskdef name="startBuildActivity"
classname="com.ibm.team.build.ant.task.StartBuildActivityTask" /&
&taskdef name="completeBuildActivity"
classname="com.ibm.team.build.pleteBuildActivityTask" /&
&!-- ************ build process definition ************ --&
&target name="all" depends="init"&
&condition property="run_build_condition"&
&istrue value="${run_build}" /&
&/condition&
&condition property="run_unit_test_condition"&
&istrue value="${run_java_unit_test}" /&
&/condition&
&condition property="run_sql_test_condition"&
&istrue value="${run_sql_unit_test}" /&
&/condition&
&condition property="run_unpack_condition"&
&istrue value="${run_unpack}" /&
&/condition&
&condition property="run_upload_condition"&
&istrue value="${run_upload}" /&
&/condition&
&condition property="run_release_condition"&
&istrue value="${run_release}" /&
&/condition&
&antcall target="build" /&
&antcall target="quote_unit_test" /&
&antcall target="quote_sql_test" /&
&antcall target="unpack" /&
&antcall target="upload" /&
&antcall target="release" /&
......//省略文件主体,详见下载部分。
&/project&省略文件主体,详见部分。构建定义在进行构建之前,需要为工程制定构建定义,下图是一个构建定义的例子。图 4. 构建定义在构建定义中,需要为其指定构建引擎,如果没有的话需要创建新的构建引擎,具体过程会在步骤 3 中详述。在 Jazz 源码控制选项卡里可以为构建定义选择或创建构建工作空间,通过此工作空间,指向源代码流,继而可以获取项目源代码并进行构建。另外,还可以在此工作空间上方便的进行快照操作和基线操作。在构建定义中还可以指定源代码的装载地址、从源代码中增加或是排除程序组件。图 5. 构建定义源代码选项调用 Ant 脚本在构建定义中 Ant 选项卡里可以指定调用的 Ant 文件。并可以指定 Ant 参数和 JVM 参数。在构建文件路径中可以用 ${arg} 来用参数来替换其中的值。替换值可以使构建引擎定义中的值或者是构建定义中的自定义属性。
构建引擎定义中的值或者是构建定义中的自定义属性会在后面进行详细介绍。图 6. 构建定义 Ant 属性定义构建引擎
构建定义是需要运行在构建引擎上的,可以为构建定义指定多个构建引擎,这样,如果一个构建引擎不能用的时候,可以自动转移到其它的构建引擎上执行。
图 7. 构建引擎定义
下面是一个构建引擎的定义,可以给构建引擎设定自定义属性,填写相应的名称和值。这样,所有应用此构建引擎的构建定义都可以获取到此属性值。所以,可以把一些构建引擎公用的属性定义在构建引擎的属性定义中。
图 8. 构建引擎属性定义启动构建引擎启动构建引擎需要执行一个外部命令,格式如下:jbe -repository https://localhost:9443/jazz
-engineId default -userId myUser -pass myPass -sleeptime 1下面是一个实际的启动构建引擎的例子:/opt/IBM/java/java_1.6/current/sdk/jre/bin/java
-jar /opt/IBM/RTC/CLM_3.0.1_Build/jazz/buildsystem/buildengine/eclipse/plugins/
org.eclipse.equinox.launcher_1.0.201.R35x_v.jar
-repository https://igartc03.swg./jazz/
-userid jhma@
-passwordFile /net/rpo-fs015/vol/homes/cvtbld/EdwardJazzPassword.txt
-engineId CVT-DSW-SQO图 9. 构建引擎启动状态多环境扩展为了能够支持多环境下构建的需要,我们采用通过 Ant 脚本和构建定义的自定义属性来实现对多环境下的构建工作。图 10. 构建属性定义在该项目中,不同环境的构建是通过给 deploy_target 和 env 传递不同的参数值来实现。通过给参数传递不同的值,如功能测试环境(FVT)、用户测试(UAT)PS 来通过脚本实现不同环境的构建和部署。具体实现方式如下图所示:首先将参数传递给构建脚本:图 11. Ant 脚本定义然后根据不同的参数,调用不同的脚本片段 :图 12. 多环境扩展实现WAS 下自动部署图 13. 动构建到部署流程介绍构建 ear 包:一般启动一个 Build Definition 就可以开始构建 ear 包。可以通过计划来启动 Build Definition,也可以通过手工方式来启动。传送 ear 包到 WAS 的 Deployment server 上:ear 包将被部署脚本使用来更新当前的应用。通过部署脚本部署 ear 包:这个步骤是通过远程调用部署脚本来部署新构建的 ear 包。通知相关 members:这个步骤是通过 Jazz RTC 的一个功能特性来通知需要关注 build 和 deploy 结果的成功。后续"报告和通知"章节将详细介绍。WAS 部署脚本设置图 14. 部署脚本Quote.properties 是该项目设置部署脚本属性的文件,包含的属性有:cell, profile, cluster, node, server, ear, application。wsadmin.sh 是包含具体部署脚本的程序文件,该文件通常位在 WAS 的安装目录下。wsadmin.sh 文件在项目中位于:/usr/WebSphere/AppServer/profiles/DSWNode/bin/wsadmin.sh远程调用脚本设置图 15. 脚本调用在该项目中,构建引擎通过 ssh 命令来远程调用部署脚本。 &target name="fvtForSQO" depends="init"&
&sshexec username="${fvt.user}" password="${fvt.pwd}"
host="${fvt.host}" trust="true" command="/deploy/ant/apache-ant-1.8.1/bin/ant
-f /deploy/codedrop/appupdate/build.xml updateAndRestart
-Dprop.file=/deploy/codedrop/appupdate/fvt/Quote.properties
-Dwsadmin.user=${wsadmin.user} -Dwsadmin.pw=${wsadmin.pw}" /&
&/target&计划任务一般来说,项目都会有定时构建的需求。例如,项目期望公用 jar 包每隔 1 个小时自动检测是否有代码修改,如果有修改就构建出新的 jar 包。这种情况下就可以使用 Jazz 的计划任务特性,下面以该项目中的实际使用为例来介绍如何设置并启动自动任务执行。打开该项目构建定义中的定时任务 (schedule) 选项卡;图 16. Schedule 设置设置间隔时间,执行天数等;切换到源代码管理 (Jazz Source Control) 选项卡,选中"Build only if there are changes accepted"选项。这个选项的作用就是只有构建引擎检测到有代码变更时才开始自动构建,这样就避免了很多次无效的构建出现。图 17. Jazz Source Control 设置报告和通知如果希望在构建结束后,收到邮件通知,则可以使用 Jazz 的邮件通知功能。下面以该项目中的使用为例来介绍设置步骤。打开该项目构建定义中的邮件通知(Email Notification)选项卡;图 18. Email Notification 设置点击添加,打开邮件通知编辑窗口,输入标题名称以及邮件地址;图 19. Edit Email Notification Criteria 设置点击确定,回到构建定义页面,保存以上设置。总结综上所述,项目团队可以使用 RTC 提供的构建能力来实现按需构建,自动构建,定时构建,进而很好的进行项目的持续集成。
下载描述名字大小示例代码11 KB
参考资料 了解:。查看教程“”。访问 ,获得关于 IBM Rational 软件交付平台(Rational Software Delivery Platform)产品的技术资源和最佳实践。订阅 ,一份关于 developerWorks 指南、文章、下载、社区活动、网络广播和技术讲座的电子周刊。Jazz.net ()是一个基于
平台技术的实时协作式软件交付环境,可以帮助跨地域分布的开发团队简化协作开发过程,并使其软件交付过程实现自动化管理。免费下载:获取免费的 ,了解最新的 IBM Rational 软件开发工具技术文档和资源。下载更多免费的 ,了解 IBM Rational 软件的最新特性。获取更多 ,并熟练掌握来自 DB2®、Lotus®、Tivoli®,以及 WebSphere® 的开发工具和中间件产品,用这些试用版软件开发您的下一个项目。这些试用版软件可以免费直接从 developerWorks 下载。加入 ,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。访问 developerWorks 社区上的 ,这里汇集了丰富的 Jazz 平台中文技术资源。 您可以通过这里了解更多关于 Jazz 平台和 Jazz 技术发展趋势的最新信息。访问 developerWorks 社区上的 ,在那里您将有机会与更多的开发人员一起交流敏捷开发最佳实践。加入 ,参与在线交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=RationalArticleID=827302ArticleTitle=基于 Rational Team Concert 实现持续集成publish-date=}

我要回帖

更多关于 jenkins持续集成 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信