`

ant与maven比较

    博客分类:
  • ant
 
阅读更多

MAVEN BOOK 写道

Apache Ant
•Ant 没有正式的约定如一个一般项目的目录结构,你必须明确的告诉 Ant 哪里去找源代码,哪里放置输出。随着时间的推移,非正式的约定出现了,但是它们还没有在产品中模式化。
•Ant 是程序化的,你必须明确的告诉 Ant 做什么,什么时候做。你必须告诉它去编译,然后复制,然后压缩。

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

Apache Maven
•Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。它把字节码放到 target/classes ,然后在 target 生成一个 JAR 文件。

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

•Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

 

以上这些言论出自mavenbook自然大都在说maven的优点

但是两种构建工具存在并有人使用自然有着自己的优缺点,在我自己使用着两种构建工具的经验是这样的,一般做小的项目我会用的ant,自己写整个构建的步骤等过程,能够最大程度的实现自定义,包括自己写打包命令,测试命令,生成测试文件等。

虽然maven有很多约定的东西,根据约定写,maven就可以帮你实现测试和构建等,无需再自己定义哪些文件需要构建,但是maven的入门较难,需要了解的pom的配置和settings的配置从这点来讲maven的配置其实也不少的,而且maven的jar包依赖引入等,可能导致版本的冲突等情况。一般在大一点的项目,或者项目需要模块化开发时,maven似乎比ant更方便管理使用。

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






0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics