项目管理: Maven 让事情变得简单
给您的下一个 Java 构建添加项目管理特性
Charles Chan (charlesc@ibiblio.org), 高级软件开发人员, Finetix LLC 简介: 尽管 Ant 对于构建 Java 程序而言是事实上的标准工具,但这个工具在许多方面都不胜任项目管理任务。相反,Ant 提供的东西,Maven(出自 Apache Jakarta 项目的高级项目管理工具)都能提供,而且更多。Java 开发人员 Charles Chan 将介绍 Maven 的特性,并循序渐进地指导您进行一次完整的目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make 的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。
Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 Maven vs Ant
那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,我要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant 代表两个差异很大的工具,所以我将只说明这两个工具的等同组件之间的区别,如表 1 所示。 表 1. Maven vs Ant Maven Ant 标准构project.xml 和 maven.xml 建文件 特性处理顺
build.xml 1. ${maven.home}/bin/driver.properties 2. ${project.home}/project.properties 3. ${project.home}/build.properties 4. ${user.home}/build.properties 1. 通过 -D 命令行选项定义的系统特性 2. 由 序 5. 通过 -D 命令行选项定义的系统特性 最后一个定义起决定作用。 任务装入的特性 第一个定义最先被处理。 构建规则或多或少是静构态的,除非使用 建构建规则更为动态(类似于编程语言);它们是基于