我正在阅读Kent R.Spillner关于Java构建工具的博客这篇文章。虽然我轻微地使用过Ant和Maven,但我没有认真地致力于其中任何一个,而现在我打算这样做。我链接的这篇博客是否夸大其词?最重要的是,对于一个中等规模的项目(大约20K行代码),我应该使用Maven还是Ant?
我正在阅读Kent R.Spillner关于Java构建工具的博客这篇文章。虽然我轻微地使用过Ant和Maven,但我没有认真地致力于其中任何一个,而现在我打算这样做。我链接的这篇博客是否夸大其词?最重要的是,对于一个中等规模的项目(大约20K行代码),我应该使用Maven还是Ant?
这要看情况而定。Maven和Ant只是不同的方法:命令式和声明式(详见命令式与声明式构建系统)。
Maven 更适用于管理依赖关系(但如果使用Ant+Ivy,Ant也可以胜任),以及构建工件。从Maven中获益最大的是它的生命周期。您只需在正确的阶段添加特定操作,这似乎非常合乎逻辑:例如,在integration-test阶段上启动集成测试。此外,还有许多现有的插件,几乎可以完成所有任务。Maven原型是一个强大的功能,允许您快速创建项目。
Ant 更适用于控制构建过程。在进行首次构建之前,您必须编写build.xml文件。如果您的构建过程非常特定,则必须创建复杂的脚本。对于长期项目,支持ant-scripts可能会变得非常痛苦:脚本变得太复杂,编写它们的人可能离开项目等等。
它们都使用XML,在大型长期项目中可能会变得太大。
无论如何,您都应该阅读有关两者的具体文档。此外,还有ant-maven-plugin,它允许使用Maven启动ant-scripts。
P.S. 您可以看看Gradle,我认为它可以提供比Maven更多的自由,但比Ant更容易使用。