锁定老帖子 主题:Maven和Ant相比好在哪儿?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-07-21
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-07-21
ant只是一种类似于批处理的工具,makefile的性质,maven会强迫你建立和接受它的一套规范,用哪个取决于你的团队的习惯
|
|
返回顶楼 | |
发表时间:2006-07-21
转贴www.matrix.org.cn 上的 maven和ant的比较
第一:每次和别人说maven的时候,很多会认为是全新的东西而不肯放弃ant。其实,ant脚本是可以直接运行在maven中的。 如果要说maven和ant有什么差别,我觉得最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM(project object model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。 第二:Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。而ant则通常是简单的inclde 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的common-logging 是哪个版本的,唯一的方法就是打开 META-INF 目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。 第三:Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。 第四:maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。 第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。 最后,总结一下,转向maven会为你节省更多的时间。 |
|
返回顶楼 | |
发表时间:2006-07-22
clark 写道 第三:Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。 第四:maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。 就说第三条,看起来很好。实际的效果是,你下载了基于maven的项目源码后,基本没法编译。因为很多包下载不了,或者版本不对。越老的项目越有可能无法编译。 第四条也没有吸引力,因为这些用ant写很方便,找个例子改改,也不过几分钟而已。 所以总的来说,我没看出转移到maven能够多大程度提高我的工作效率,反而有可能浪费学习时间。 |
|
返回顶楼 | |
发表时间:2006-07-22
我们公司用maven管理项目, 感觉非常不错,, 提供了许多插件, wtp + Maven
|
|
返回顶楼 | |
发表时间:2006-07-22
弄弄项目么ant已足够,要maven这种复杂东西来干什么出了问题还找个半天
|
|
返回顶楼 | |
发表时间:2006-07-22
ylt 写道 clark 写道 第三:Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。 第四:maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。 就说第三条,看起来很好。实际的效果是,你下载了基于maven的项目源码后,基本没法编译。因为很多包下载不了,或者版本不对。越老的项目越有可能无法编译。 第四条也没有吸引力,因为这些用ant写很方便,找个例子改改,也不过几分钟而已。 所以总的来说,我没看出转移到maven能够多大程度提高我的工作效率,反而有可能浪费学习时间。 也说第三条,你遇到的问题大概是从网上下的用 maven 的项目,可是作为自己公司的项目,用同一个中央仓库会带来很大的便利,不会到处找各个组件包,会很快找到需要的版本。如果自己管理的话会很麻烦! 也说第四条,maven 就是基于 ant 的。 |
|
返回顶楼 | |
发表时间:2006-07-23
用ant确实遇到过不同版本jar造成麻烦的问题。看过ant的代码,根本问题出在ant最终要调用java.exe来运行class(java和junit task都是这样),而只要是用java.exe,就只有指定一个classpath这个选择,没办法处理复杂情况。
所以问题其实是出在这两个task上面。 不知道maven是怎么解决这个问题的?大概是自己做一个executor,而不是直接调用java.exe。 |
|
返回顶楼 | |
发表时间:2007-04-23
路过,学习中
|
|
返回顶楼 | |
发表时间:2007-04-23
个人 ANT ,团队maven
ANT 的 批处理 速度快! MAVEN 的 规范 好! |
|
返回顶楼 | |