目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。
Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。
那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,我要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant 代表两个差异很大的工具,所以我将只说明这两个工具的等同组件之间的区别,如表 1 所示。[1]
|
Maven
|
Ant
|
标准构建文件
|
project.xml 和 maven.xml
|
build.xml
|
特性处理顺序
|
${maven.home}/bin/driver.properties
${project.home}/project.properties
${project.home}/build.properties
${user.home}/build.properties
通过 -D 命令行选项定义的系统特性
最后一个定义起决定作用。
|
通过 -D 命令行选项定义的系统特性
由 <property> 任务装入的特性
第一个定义最先被处理。
|
构建规则
|
构建规则更为动态(类似于编程语言);它们是基于 Jelly 的可执行 XML。
|
构建规则或多或少是静态的,除非使用 <script> 任务。(请参阅 参考资料以获得相关教程。)
|
扩展语言
|
插件是用 Jelly(XML)编写的。
|
插件是用 Java 语言编写的。
|
构建规则可扩展性
|
通过定义 <preGoal> 和 <postGoal> 使构建 goal 可扩展。
|
构建规则不易扩展;可通过使用 <script> 任务模拟 <preGoal> 和 <postGoal> 所起的作用。
|
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。
相关推荐
Apache Maven 是一个强大的项目管理工具,广泛用于Java应用程序的构建、管理和依赖管理。Maven 3.9.6 是该工具的一个稳定版本,提供了一系列改进和优化,旨在提高开发效率和构建过程的可靠性。 Maven 使用一个约定...
Maven 是 Apache 软件基金会的一个关键项目,它是一个项目管理和综合工具,主要用于Java应用程序的构建、依赖管理和项目信息管理。Maven 的核心理念是通过一个标准化的构建生命周期来简化软件开发流程,它通过读取...
Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中央信息中管理项目的构建、报告和文档。 压缩包内容: apache-maven-3.8.1-bin.zip、 apache-maven-3.8.1-bin.tar.gz...
Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化构建生命周期和依赖管理,使得开发者能够更高效地构建、测试和部署Java应用程序。Maven 3.3.9是Maven的一个稳定版本,它包含了多个...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它基于项目对象模型(Project Object Model,POM)的概念,使得项目的构建、依赖管理、文档生成、代码质量检查等任务变得简单。Apache ...
Apache Maven 是一个强大的项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,用于管理和构建Java项目。Maven通过自动化构建过程,包括编译、测试、打包、部署等步骤,大大简化了开发流程。在...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和文档,极大地简化了软件开发过程。Maven 3.3.9是该工具的一...
Apache Maven 是一个强大的项目管理工具,广泛用于Java应用程序的构建、管理和依赖管理。Maven 使用一种标准的项目对象模型(Project Object Model,POM),通过POM文件来配置项目的构建过程,解决和管理项目的依赖...
Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,能够自动化构建过程,管理依赖关系,并提供统一的构建生命周期。Maven 3.8.1是该软件的最新稳定版本,包含了...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过依赖管理和项目生命周期的概念,使得构建、配置和管理Java项目...
Apache Maven 是一个强大的项目管理工具,主要用于构建、管理和组织Java项目。Maven 使用约定优于配置的理念,大大简化了项目的构建过程。"apache-maven-3.6.3.zip"是Apache Maven的一个特定版本,即3.6.3,通常包含...
Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,用于构建、管理和依赖关系解决。`apache-maven-3.8.4-bin.tar.gz` 是Apache Maven 3.8.4版本的二进制发行版的...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过POM来管理项目的构建、报告和依赖关系。"apache-maven-3.6.1-...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和文档。Maven 的核心目标是简化项目构建过程,通过自动化构建...
Maven是Java领域广泛使用的项目管理和综合工具,它提供了一种标准化的方式来构建、管理和部署软件项目。Maven插件是Maven生态系统的重要组成部分,它们扩展了Maven的核心功能,允许开发者执行特定的任务,如编译、...
Apache Maven (apache-maven-3.8.4-bin.zip)是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中央信息中管理项目的构建、报告和文档。
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和文档生成。在本文中,我们将深入探讨Maven 3.0.5这一特定版本,...
Apache Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。Maven 3.6.2 是该软件的一个稳定版本,提供了许多改进和优化。在这个“apache-maven-3.6.2-bin”安装包中,包含了运行Maven所需的所有核心...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和依赖关系。在本文中,我们将深入探讨"MAVEN-配置apache-maven-...
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,...