Maven是一个强大的Java项目构建工具。

构建工具是将软件项目构建相关的过程自动化的工具。

Maven主要做了两件事:

统一开发规范与工具

统一管理jar包

构建一个软件项目通常包含以下一个或多个过程:

生成源码(如果项目使用自动生成源码);

从源码生成项目文档;

编译源码;

将编译后的代码打包成JAR文件或者ZIP文件;

将打包好的代码安装到服务器、仓库或者其它的地方;

Maven的定位是软件项目管理和理解工具。Maven除了具备Ant的功能外,还增加了以下主要的功能:

1)使用Project Object Model来对软件项目管理;

2)内置了更多的隐式规则,使得构建文件更加简单;

3)内置依赖管理和Repository来实现依赖的管理和统一存储;

4)内置了软件构建的生命周期;

•Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。

•Maven 是声明式的。你需要做的只是创建一个 pom.xml 文件然后将源代码放到默认的目录。Maven 会帮你处理其它的事情。

•Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。

Ant是Apache另一个流行的构建工具。

Ant使用命令式的方式,即你需要在Ant构建文件里指定Ant应该执行的操作。你可以指定低级别的操作,如复制文件、编译代码等。你指定操作,还需要执行这些操作执行的顺序。Ant没有默认的目录结构。

Ant 没有正式的约定如一个一般项目的目录结构,你必须明确的告诉 Ant 哪里去找源代码,哪里放置输出。

Ant 是程序化的,你必须明确的告诉 Ant 做什么,什么时候做。你必须告诉它去编译,然后复制,然后压缩。

•Ant 没有生命周期,你必须定义目标和目标之间的依赖。你必须手工为每个目标附上一个任务序列

总结

maven和ant虽然都是构建工具,但是两种的思维方式是不一样的,ant更像一种编程语言,自己去写代码让项目做你想要让它做的事情,删除,复制,编译,测试,打包等,而maven则是自己有生命周期去完成你想要的编译测试等工作,只要你懂它的约定,当然你得懂他的各种约定包括配置文件的各种配置。maven在于配置。

参考文献

http://miaowugui.iteye.com/blog/2207024

-----------------------------------------------------------------------------------------------------------------------