为什么Apache Foundation会发布两个构建工具(Ant和Maven)?

时间:2012-05-22 15:34:43

标签: java apache maven ant build

我有使用Ant的经验,但没有使用Maven 我的问题是:为什么Apache Foundation会发布两个构建工具(Ant和Maven)?

  1. 为什么不能将同一个Ant工具升级到Maven?
  2. 使用Maven而不是Ant有什么好处,反之亦然?
  3. 当Ant作为构建工具工作时,构建Maven的原因是什么?

3 个答案:

答案 0 :(得分:8)

Apache并不是真正的“供应商”,它是托管和支持(在许多情况下)其他人/团体捐赠给他们的开源项目的基础。

Ant的第一个版本早在2000年,所以它是一个非常古老的工具。 Maven试图以不同的方式处理项目建设。退役Ant没有任何意义,因为它仍然有很多价值。

答案 1 :(得分:3)

仅仅因为某些东西起作用并不意味着它无法改进。 ANT本身是作为MAKE的纯Java替代品构建的。 有关ANT背后的理念,请参阅What is ANT。 另请参阅What is maven,了解Maven团队对maven目标的看法。

我个人从maven的依赖管理功能中汲取了很多价值。

答案 2 :(得分:1)

最好的构建工具是您自己编写的工具。每个项目的构建过程都是独一无二的,通常需要以多种不同的方式构建单个项目 如果您不想编写自己的构建工具,那么您应该使用:Ant或Maven
Ant是一个构建工具; Maven是一个构建系统:

这意味着使用Maven,您无需确定目录布局,构建目标,版本控制方案,依赖关系管理等。这些都是为您设计的。如果您不喜欢默认设置,这也意味着您将在某种程度上反对该工具。

好处是,您希望构建到构建系统中的大多数常用工具(CheckStyle,FindBugs,单元测试,单元覆盖范围,JDepened ......)都可以使用,无需任何额外的开发工作。此外,还有一个定义良好的框架,用于通过构建插件来扩展构建系统(顺便说一句 - 使用Ant来构建插件非常简单)。此外,与IDE的良好集成使开发人员使用与自动构建系统相同的构建信息。

权衡是,除非您从头开始,否则您可能需要重构源代码以符合Maven的预期。无需从头开始构建所有内容的权衡是,您有时会花时间弄清楚如何诱使Maven做您想做的事情,以及您希望如何完成。