﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-asangel-文章分类-JAVA</title><link>http://www.blogjava.net/asangel/category/39789.html</link><description>asangel</description><language>zh-cn</language><lastBuildDate>Wed, 17 Jun 2009 04:09:39 GMT</lastBuildDate><pubDate>Wed, 17 Jun 2009 04:09:39 GMT</pubDate><ttl>60</ttl><item><title>【转载】Maven Ant之间的比较</title><link>http://www.blogjava.net/asangel/articles/277452.html</link><dc:creator>asangel</dc:creator><author>asangel</author><pubDate>Sat, 23 May 2009 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/asangel/articles/277452.html</guid><wfw:comment>http://www.blogjava.net/asangel/comments/277452.html</wfw:comment><comments>http://www.blogjava.net/asangel/articles/277452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asangel/comments/commentRss/277452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asangel/services/trackbacks/277452.html</trackback:ping><description><![CDATA[<span class="style7">Apache <span class="hilite2">Maven</span>一个潜在的基于java的apache <span class="hilite1">ant</span>的构建工具的替代者。两者之间的比较： <br />
第一：<span class="hilite1">ant</span>脚本是可以直接运行在<span class="hilite2">maven</span>中的。<span class="hilite2">maven</span>和<span class="hilite1">ant</span>最大的差别就是在于<span class="hilite2">maven</span>的编译以及所有的脚本都有一个基础，就是POM（project object model）。这个模型定义了项目的方方面面，然后各式各样的脚本在这个模型上工作，而<span class="hilite1">ant</span>完全是自己定义，显然<span class="hilite2">maven</span>更胜一筹。 <br />
第二：<span class="hilite2">Maven</span>对所依赖的包有明确的定义，如使用那个包，版本是多少，一目了然。而<span class="hilite1">ant</span>则通常是简单的inclde 所有的jar。导致的最终结果就是，你根本无法确定JBoss中的lib下的common－logging 是哪个版本的，唯一的方法就是打开 META－INF 目录下MANIFEST.MF。估计JBoss迟早会转向<span class="hilite2">Maven</span>的。 <br />
第三：<span class="hilite2">Maven</span>是基于中央仓库的编译，即把编译所需要的资源放在一个中央仓库里，如jar，tld，pom，等。当编译的时候，<span class="hilite2">maven</span>会自动在仓库中找到相应的包，如果本地仓库没有，则从设定好的远程仓库中下载到本地。这一切都是自动的，而<span class="hilite1">ant</span>需要自己定义了。这个好处导致的结果就是，用<span class="hilite2">maven</span>编译的项目在发布的时候只需要发布源码，小得很，而反之，<span class="hilite1">ant</span>的发布则要把所有的包一起发布，显然<span class="hilite2">maven</span>又胜了一筹。 <br />
第四：<span class="hilite2">maven</span>有大量的重用脚本可以利用，如生成网站，生成javadoc，sourcecode reference，等。而<span class="hilite1">ant</span>都需要自己去写。试试 <span class="hilite2">maven</span> site 的效果。 <br />
第五：<span class="hilite2">maven</span>目前不足的地方就是没有象<span class="hilite1">ant</span>那样成熟的GUI界面，不过mavengui正在努力中。目前使用<span class="hilite2">maven</span>最好的方法还是命令行，又快又方便。</span>&nbsp;
<img src ="http://www.blogjava.net/asangel/aggbug/277452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asangel/" target="_blank">asangel</a> 2009-05-23 09:54 <a href="http://www.blogjava.net/asangel/articles/277452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>