我有使用 Ant 的经验,但没有使用 Maven。
我的问题是:为什么 Apache 基金会要发布两个构建工具(Ant 和 Maven)?
- 为什么同一个Ant工具不能升级到Maven?
- 使用 Maven 而不是 Ant 有什么好处,反之亦然?
- 当 Ant 作为构建工具时,构建 Maven 的原因是什么?
Apache 并不是真正的“供应商”,它是托管和支持(在许多情况下)其他人/团体捐赠给他们的开源项目的基础。
Ant 的第一个版本是在 2000 年,所以它是一个相当古老的工具。Maven 试图以不同的方式处理构建项目。退役 Ant 没有任何意义,因为它仍然具有很大的价值。
最好的构建工具是您自己编写的。每个项目的构建过程都是独一无二的,通常需要以多种不同的方式构建单个项目。
如果您不想编写自己的构建工具,那么您应该使用: Ant 或 Maven
Ant 是构建工具;Maven 是一个构建系统:
这意味着使用 Maven,您无需决定目录布局、构建目标、版本控制方案、依赖项管理等。这一切都是为您设计的。这也意味着如果您不喜欢默认设置,您将在某种程度上反对该工具。
好处是您想要构建到构建系统中的大多数常用工具(CheckStyle、FindBugs、单元测试、单元覆盖、JDepened...)都可以使用,而无需任何额外的开发工作。此外,还有一个定义明确的框架,用于通过构建插件来扩展构建系统(顺便说一句 - 使用 Ant 构建插件非常容易)。此外,与 IDE 的集成很好,因此开发人员可以使用与自动构建系统相同的构建信息。
权衡的是,除非您从头开始,否则您可能需要重构您的源代码以符合 Maven 的期望。不必从头开始构建所有东西的代价是您有时会花时间弄清楚如何哄 Maven 做您想做的事情,您希望它如何完成。