版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Ant持续集成(CI)Apache Ant 提供了丰富的核心任务以及扩展任务来完成持续集成过程中的各项工作,同时开源社区 Ant-Contrib 提供的 Ant 任务更是大大增强了 Ant 的可编程性,使得 Ant 有能力完成更为复杂的逻辑操作。基本的持续集成环境一个持续、稳定的构建是整个持续集成过程中的关键。在每个迭代周期的开发过程中, 软件开发团队应当及时将最新的功能代码进行提交和构建 该能够获取经过验证后的最新的产品构建,并将其打包成可交付产品或进行线上产品的更 新,交由产品的项目关系人或最终客户进行使用,确保客户需求与软件产品一致。目前在Web 2.0 应用的敏捷开发过程中多采用这样一
2、种集成环境,以满足 Web 2.0 应用最为典型的“Always Beta”特性。下图展示了一种基本的持续集成环境的拓扑结构。1. 持续集成环境的拓扑结构持续构建服务器上的 Ant 脚本首先从源代码管理库获取最新的代码,并按照特定的构FTP 服务器(FVT) (SVT) 环境则包括了测试服务器和测试数据等信息,其上的 Ant 脚本则负责从 FTP 服务器获取最新的构建,提取更新所需的产品代码(如果需要,还要提取必要的数据库更新脚本,完成数据库架构的重构)来完成测试环 运行环境,其上的 Ant 脚本可以将通过测试的构建生成可交付的产品或线上产品更新包, 这一过程常伴随产品版权信息验证、产品包压缩
3、以及产品部署等动作。Ant 如何帮助持续集成Ant 作为 Java 开发领域应用最为广泛的自动构建工具,不仅可以帮助开发团队实施构建包以完成后续的产品测试与发布工作化。本文不会对 Ant 的基本概念和所有任务进行逐一介绍,而是将作者在实践过程中认为对持续集成有所帮助的概念和任务加以解释阐明,以期读者更好地了解 Ant 的能力,并加以灵活的运用。 ( ) 任务提供了在一个构建脚本内调用外部脚本特定目标(target)的能力,这种能计一个独立的控制脚本,借助 任务使其通过调用不同的项目构建脚本完成整体项目的集成,这样做的一个最明显好处是使我们可以快速的适应项目变动,符合随需应变On Demand)
4、的开发模式。 任务区别于 任务之处在于,其只能调用同一个构建脚本之内的构建目标,他所提供的是对一个构建脚本自身的清晰管理。以往依赖于 depends 属性的方式使得我们很容易迷失在复杂的目标依赖关系中,而使用 则能够将每个构建脚本的任务以显式的、易修改的方式呈现给项目构建者。 ant-contrib 开源项目提供的扩展任务,是增强版本的 和 任务,他们不仅具备前二者的基本能力,还可以返回外部脚本或同脚本其他目标中的属性,可类比编程语言中带返回值的方法调用。Available Condition在构建过程中,构建脚本不可避免地会对许多外部资源(文件,目录,URL 等)进行 可用性。 任务可以帮助
5、我们对各种外部资源进行判断,通过设置相应的属性来表明判断结果,进而引导后续的构建操作。 (nested element)/ 等,具备了对资源进行更加复杂的逻辑判断能力。For If当我们使用 Ant 脚本编写一些较为复杂的逻辑功能,比如循环和流程判断时,自然希望 Ant 能支持这种编程能力。然而 Ant 核心任务中并没有提供 任务,只是在 任务的属性中支持 if module-A-present build-module-A 目标。但是,必须注意的一点是,这里的 if 并不是判断 module-A-present 属性是否设置为特定值,而仅仅是检查该属性是否被设置了,因而其可编程性并不是很强。
6、Ant-contrib 为 Ant 提供了与通常所使用的编程语言功能相同的 和 任务,在构建过程中灵活运用这两个任务,将大大增强 Ant 对逻辑操作的控制能力,这其实就是XML 脚本的编程。在具体的实践过程,有一点需要特别注意:在使用 任务的过程中,如果我们期望在循环体内使用一个变量,而非 Ant 的 property,则需借助由 ant-contrib 提供的 任务(ant-contrib 任务)来实现。尽管这与 property 的值一经设置便无法改变的设计原则相抵,但有时能够给构建脚本很大程度上的灵活性。Replace ReplaceRegExp在由开发构建包向产品构建包转变的过程中之一
7、 , 比如我们不能假设用户会将 JDK 安装在与开发环境相同的路径下,这时便可以使ant 任务, 任务可以针对特定的字符串的执行替换操作。不仅Ant 任务,还可以实现基于正则表达式的替换。例如,要将 test.bat 文件中的行首“java”字符串替换为“././java/bin/java”而不影响其他“java”字符串,可以使用如下 ant 脚本:Filterchain MapperFilterchain 和 Mapper 是在集成脚本中经常用到的 ant Filterchain 增强了面向数据传输的 ant 任务的能力,如 Concat,Copy,Loadproperties 和 Move
8、,借助于各种不同功能的 filter,使得这些任务具备了数据筛选和处理的能力,非常类似于 Unix 系统中的管道的概念。例如,要实现将 A 文件夹复制到 B 文件夹,同时对 B 文件夹中所有 jsp 文件的文copyright.txt ant 脚本。Mapper Copy,Move Unzip 任务中,它的作用在于为这些任务增加指定 来指定源文件集,更可以通过各种不同功能的 mapper建持续集成环境中起到了极为灵活的作用ant 脚本。Taskdef CVS,SVN 或 IBM ClearCase 作为项目源代码库,使用Apache Tomcat,IBM WebSphere Applicati
9、on 作为测试或产品环境的部署服务器,使用LiquiBase,DBdeploy Ant 借助其易扩展的特性, 对所有这些工具提供了很好的支持,外部工具的提供者只要实现特定的 Ant 任务接口,就Ant Ant 任务,Ant 脚本来管理整个集成环境的目的。实现一个基本的持续集成环境在一个典型的线上 Web 2.0 应用的迭代开发周期中,持续集成通常涉及构建、部署、(比如 基于 Java EE WAR 或 EAR 文件)。因此,在构建服务器上调用一个综合性的 Ant 构建脚本(清单 1),产生其它动作所需要的产品包,则成为整个持续集成过程中最为核心的一步。清单 1. 产生其它动作所需要的产品包不难
10、看出, 任务通过调用不同的任务组合达到了为不同构建目的提供不同构建动作的目的,其中包括对“冒烟”测试,功能测试以及产品环境安装的特定支持,而各个环境所需要的产品包也因 任务目标的不同而不同,这种松散组合的方式为今后脚本的维护和更新提供了良好的基础。在为产品环境提供产品包(perform_productBuild)的目标中, 扩展任务通过调用外部的 checkLicese.xml 脚本来对产品进行版权核查,任何没有版权信息的文本文件都将被记录到 reportFile 中。虽然类似的这种功能可以使用多种脚本语言来方便的实Python Ruby Ant Ant 脚本2 Ant 实现版权信息检查的部分脚本。2. Ant 实现版权信息检查的部分脚本parator对于测试环境和产品环境而言,获取产品包并自动的进行产品部署是两者共同的首要工 Ant 具备了良好的跨平台能力,我们不必为不同的部署环境(Windows 或 Linux)去编写不同的部署脚本,只需将精力集中于产品包的获取和针对不同应用服务器的部署即可,清单 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 巾帼标兵先进事迹材料集锦15篇
- 感恩父母讲话稿(集合15篇)
- 扭转治疗分享会
- 培训学校招生宣传
- 初级金融专业-《金融专业知识与实务》名师预测卷1117
- 初级会计经济法基础-初级会计《经济法基础》预测试卷325
- 智研咨询发布-2024年中国曲轴行业市场竞争格局、行业政策及需求规模预测报告
- 产业研究报告-2024年中国磁悬浮轴承行业发展现状、市场规模、投资前景分析(智研咨询)
- 二零二五年度家居定制销售购销合同(含设计服务)2篇
- 二零二五年度个人工厂生产线安全设施转让协议3篇
- 2025届山东省德州市物理高三第一学期期末调研模拟试题含解析
- 2024年沪教版一年级上学期语文期末复习习题
- 两人退股协议书范文合伙人签字
- 2024版【人教精通版】小学英语六年级下册全册教案
- 汽车喷漆劳务外包合同范本
- 微项目 探讨如何利用工业废气中的二氧化碳合成甲醇-2025年高考化学选择性必修第一册(鲁科版)
- 广东省广州市黄埔区2024-2025学年八年级物理上学期教学质量监测试题
- 2024年重庆南开(融侨)中学中考三模英语试题含答案
- 财务管理学(第10版)课件 第1章 总论
- 《鼻咽癌的诊治》课件
- 16J914-1 公用建筑卫生间
评论
0/150
提交评论