发布网友 发布时间:2022-04-24 19:14
共1个回答
热心网友 时间:2022-04-09 23:39
在过去几年中,Maven 已经不仅仅是 Java 世界的一个时髦话题。自 2001 年起,Maven 已经成为构建工具领域的先驱。最近几年,人们常拿它与 Ant 比较。因为 Maven 与 Ant 有一些显而易见的相似之处,所以拿它们俩作比较似乎是很自然的事。比如说,在两种情况下,XML 脚本都是可用的;两种工具都可以生产工件;它们还可以共享相同的分类法和概念,比如 项目(project)、目标(target)与 目标(goal),以及 依赖关系(depends) 和 先决条件(prereqs)。但它们实质上有很大的差别。Ant 只是一个 XML 脚本工具,而 Maven 是一个普通的构建工具,它关注的重点是一个叫做项目对象模型(POM)的概念。POM 暴露的是粗粒度的、面向构建的任务,这些任务被称为目标,它们提供了一些准则,帮助您开发构建方法和实现最佳实践。在某些方面,Maven 属于软件工厂尽管目前它仍在外围。更确切地说,诸如 Maven 之类的构建工具是软件工厂领域中必不可少的。软件工厂通过显著提高自动开发的级别,软件工厂提供了一个花费更少、更灵活的应用程序开发方法。根据 Software Factories Web 站点的说法,“软件工厂是一个软件产品线,它根据构建特殊种类的应用程序的方法,配置一些可扩展的开发工具……提供打包的内容……以及指导”。软件工厂涉及三个主要概念:如今,这类工具已经逐渐引起了认识到它们的价值的那些工具制造人员、工具开发人员和软件编辑的注意。这些工具促进了软件开发过程的工业化,降低了投入市场的成本和时间,同时还提高了生产率,加快了对进化需求的反应。仔细查看一下 Maven 的主要特性,您就会认识到 Maven 与软件工厂之间的相似之处:Maven 使用 POM 作为元数据来描述项目结构,并通过通用应用程序插件来获得可扩展的项目模板。因为Maven 非常灵活并且是开放源码的,所以很容易推断和设想 Maven 是软件工厂平台中的一个核心组件。但是,还有另一种说法。上述类比并不完全,因为目前的 Maven 缺乏专用的开发环境,而这类环境有助于创建特定于域或特定于企业的插件和模板,并允许您轻松地配置项目或定制行为。不过,Maven 的主要目标是标准化构建过程,并保证代码构建-测试-部署(CBTD)循环中的质量和易再现性(easy reprocibility)。它还可以制定度量标准,帮助您了解开发状态。CBTD 本体论在软件工程领域已经不再新鲜,但 Maven 可以使您标准化这种本体论,并通过抽象这种理论,将它想像成一个完整的实体。考虑到不断增长的项目的复杂性,标准化成为一种迫切需要。扩建的概念,我们称之为元构建,因为其无可估量的价值以及保证下一级质量的特性,正逐渐被人们认识。