`

Maven 和 ANT 的区别

阅读更多

http://jnn.blogbus.com/logs/2063359.html

最近做的一个项目从Ant 转到Maven。有一点感想于是就写了这个小东东。

Maven 和 Ant作为Java开发的利器,两者有很大不同

Ant 将提供了很多可以重用的task,例如 copy, move, delete 以及junit 单元测试Maven 则提供了很多可以重用的过程。 我们可以把 Maven 看成是一个 "build container"这个容器可以让我们重用从一系列的项目中抽像出来的build过程。

使 用过Ant的朋友都会有这样的体会吧。 Ant提供的task级别描述,我们可以通过想写shell一样一个Java项目的build过程来进行描述。我们可以写好一个build.xml 文件,来解决我们在Java程序运行编译过程中需要解决的classpath,以及相关参数的配置问题,只有是项目中的主要结构以及依赖的库不变,我们很 少去修改build.xml。但是如果我们要开发一个新的项目即使原有项目的build.xml写的即使再好,其能够复用得模块还是比较少的。特别是对项 目的结构进行修改后,想不修改build.xml都很困难。这是因为Ant 所提供的可重用的task粒度太小,虽然灵活性很强,但是我们需要纠缠很多细节的东西。

正 如你所在使用Servlet 容器时,并没有告诉它如何去解包WAR文件,在你使用Maven 时,你也不需要告诉Maven 如何build你的项目。 Maven提供了一套抽象层用来分离项目的build 逻辑。 许多人一开始就被Maven所提供的依赖管理(可以通过XML来描述项目所依赖的库的关系)打动,但是使用Maven的主要好处还是它能为提供一个标准的 开发构架用来对多个项目进行管理。 依赖管理只是这个标准开发构架所提供的一个副产品。

如 果想让Maven实现某个build过程,例如compile, test, install,我们可以通过写plugin的方式,很容易就实现build过程的复用。Maven可以为我们提供一个很舒适的build环境,我们不需 要通过build.xml定义繁琐的build过程, 只需要告诉这些build过程的plugin,我现在的文件依赖的那些第三方库,我需要实现什么样的build功能,就足够了。 那些繁琐的路径配置信息,以及复杂的第三方库下载设置,你通通不用考虑, Maven 以及它的plugin都帮你实现了。

分享到:
评论
2 楼 exe 2011-10-17  
如果目录结果不变,ant其实也不需要怎么修改,直接copy。
1 楼 kamasx 2009-12-18  
maven的GUI界面是不是比ant要差??

相关推荐

Global site tag (gtag.js) - Google Analytics