我正在阅读 Kent R.Spillner 关于java构建工具的this博客。虽然我很少使用Ant和Maven,但我并没有认真对待任何一个我打算做的事情。博客文章是否与一个夸大的博文相关联?最重要的是,我应该将Maven或Ant用于中型项目(大约20K LOC)。
答案 0 :(得分:56)
这取决于。 Maven和Ant只是不同的方法:命令式和声明式(见Imperative vs Declarative build systems)
Maven 更适合管理依赖项(但如果使用Ant + Ivy,Ant也可以使用它们)并构建工件。 maven的主要好处 - 它的生命周期。您可以在正确的阶段添加特定操作,这似乎很合乎逻辑:例如,只需在集成测试阶段启动集成测试。此外,还有许多现有的插件,几乎可以满足所有需求。 Maven原型是强大的功能,它允许您快速创建项目。
Ant 更适合控制构建过程。在第一次构建之前,您必须编写build.xml。如果您的构建过程非常具体,则必须创建复杂的脚本。对于长期项目,对ant脚本的支持可能会变得非常痛苦:脚本变得太复杂,编写它们的人可能会离开项目等。
他们都使用xml,这在大型长期项目中可能会变得太大。
无论如何,你应该阅读两者的具体文件。此外,还有ant-maven-plugin,它允许使用maven启动ant-scripts。
P.S。您可以查看 Gradle ,这对我来说可以提供比Maven更多的自由,但比Ant更容易使用。