`
fansfirst2008
  • 浏览: 95701 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ANT与MAVEN比较之随想

阅读更多
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 文件这样的工作。

   上面引用了简单,清晰的对比!在此,结合编程来说说自己的看法!

一:首先,如果把软件看成待处理的数据的话,那么ANT就是一个没有固定数据结构,那么自然对于其实现目标是程序化的,而反观MAVEN,MAVEN是个选好数据结构的,它就是我们的约定,所以在后面的目标实现来讲,MAVEN可以选择一套我们实践中高效的算法的!

二:MAVEN的最后实现是采用了我们习惯的面向对象,生命周期这些常用的概念,使得 理解与扩展得到了最大的重用性,而ANT同样也实现了目标,只是在一种杂乱,弱性的实现!这好比数据库语言和JAVA,同样可以完成诸如同样的关系,可是在表达和理解上是截然不同的!

三:最大限度的减少重复性,就是把委托,声明,约定,封装等等这些概念!比较ANT和MAVEN,MAVEN封装了比ANT多得多的东西,而且把谁该做的都分到各自的责任中,最后采用委托来实现联系成整体!

 由此,可以借签给我们软件设计很多知识!

 

0
0
分享到:
评论
1 楼 topcat 2009-11-13  
这个比较做的好,没想到还可以比出这么个道理来

相关推荐

Global site tag (gtag.js) - Google Analytics