鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站制作教程 > XML/RSS > >

用XSL转换增强Ant的功能(1)

来源:互联网 作者:佚名 时间:2015-03-02 14:47
我在过去的几年中领导过一个程序构建小组,在这段时间内我亲眼目睹,软件从概念到代码再到用户的方式,已经发生了相当多的变化。特别需要指出一点,用于管理大规模软件开发项目的构建活动的工具和技术,已经发生了非常大的变化。 在20世纪90年代中期,大多数

我在过去的几年中领导过一个程序构建小组,在这段时间内我亲眼目睹,软件从概念到代码再到用户的方式,已经发生了相当多的变化。特别需要指出一点,用于管理大规模软件开发项目的构建活动的工具和技术,已经发生了非常大的变化。

在20世纪90年代中期,大多数源代码都是用 C 或是 C++ 编写的。要描述并管理代码的编译过程,可供选择的工具就是 make , 再加上零星几个批处理文件或是 shell 脚本以增加自动化程度,您的构建过程也就这样了。

现在时代已经变了。出现了 Java 技术、XML、XSLT、极限编程与持续构建、还有很多其他的新技术新思想。到90年代后期,情况出现了很大的变化。在程序构建工具集中,最大的变化也许就是增加了 Ant。

Ant 是一种基于 Java 的程序构建工具。它来自 Apache Software Foundation 的 Jakarta 项目,已经成为构建 Java 项目的事实标准。Ant 脚本的结构,以及它的很多易用特性,都源于 XML。同时,因为 Ant 脚本用 XML 表示,所以可以对其进行解析、修改、生成,或是用可扩展样式表语言转换(eXtensible Stylesheet Language Transformations,XSLT)进行程序转换。您甚至可以从一个 Ant 任务内部调用样式表处理器(查阅 参考资料中有关 Ant 样式任务的描述)。

两个人才能跳出优美的探戈!

现在我们要考虑 Ant 与 XSLT 结合的情况。本文剩余部分将着眼于三个实例,每一个都阐述了我在工作中遇到的某个问题。在每一个例子中,我描述的解决方案的基本思路都是将一个基本的 Ant 脚本与一个或者多个 XSL 样式表相结合。XSLT 使得原本是静态的脚本变得灵活。请根据您的经验考虑一下 Ant 在这些情况下的用法:

◆ 如何简化脚本的维护过程

◆ 如何根据 XML 元数据创建复杂的脚本

◆ 如何实现脚本浏览器

问题的价值体现在解决方法中。您也许会觉得每个特定的例子对您都没有什么用处,但是我相信您可以找到自己的办法,用这样一种简单的技术使您的构建过程充满活力。

通过实例学习

在我们开始之前,我想确认一下您是否理解一些基本概念。我提供的每一个解决方案都要求进行一次 XSL 转换。图 1 描述了 XSLT 工作的一般方式。在本文的场景中,source document(源文档)通常是一个 Ant 脚本,但是有时候可能是另一个 XML 数据文件。transformation process(转换过程)将 stylesheet(样式表)中的规则应用到源文件上,并生成 result document(结果文档)。

 
图 1. XSLT 过程概览

例 1: 用样式构建程序

前面提到过,我在一个程序构建小组中工作了若干年。我的团队与许多不同的开发组织接触,支持他们进行程序构建。我曾经同时支持过多达 17 种不同的产品,并为一个不断变化的软件提供将近50个发布版本。

我们所面临的挑战之一就是对如此之多的活动及其多样性进行管理。通常情况下,开发团队的共性很少,相互之间也没有交互。因此标准化就成为解决问题的关键。从抽象的层次来看,我们的构建过程在每一次发布时都是相同的:

◆ 定义您计划构建的内容;

◆ 将源代码提取到用于构建的计算机上;

◆ 运行编译和打包的子过程;

◆ 发布构建结果;

◆ 通知大家构建已经就绪。

我们原先打算开发通用的脚本,即便不是全都一样,至少也要遵从所有的要点。由于有这么多不同的设计,问题也层出不穷。一段时间以后,这些脚本如果不严加看管,就开始向不同的方向漫开了。每一个脚本都变得更加特殊。而一般的维护过程要花费大量的人力、时间和协调工作。

网友评论
<