﻿<?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-Enhance.Technology.Area-文章分类-maven</title><link>http://www.blogjava.net/soulengineer/category/22064.html</link><description>技术前沿阵地</description><language>zh-cn</language><lastBuildDate>Sat, 28 Apr 2007 07:01:13 GMT</lastBuildDate><pubDate>Sat, 28 Apr 2007 07:01:13 GMT</pubDate><ttl>60</ttl><item><title>思考Maven - 专家级工具1</title><link>http://www.blogjava.net/soulengineer/articles/114332.html</link><dc:creator>SoulEngineer</dc:creator><author>SoulEngineer</author><pubDate>Sat, 28 Apr 2007 06:40:00 GMT</pubDate><guid>http://www.blogjava.net/soulengineer/articles/114332.html</guid><wfw:comment>http://www.blogjava.net/soulengineer/comments/114332.html</wfw:comment><comments>http://www.blogjava.net/soulengineer/articles/114332.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/soulengineer/comments/commentRss/114332.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/soulengineer/services/trackbacks/114332.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 12px; FONT-FAMILY: verdana">一Ant与Maven的对比<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 提到Maven就不得不提到Ant，<span style="COLOR: #00ccff">Apache Ant is a Java-based build tool.</span>这个是Ant的指南的导言中的第一句话，有两个意思，一是指明ant是基于java语言开发的，另一个意思是指明了ant是一个构建工具。而在Maven的主页上的第一句话<span style="COLOR: #00ccff">Maven is a software project management and comprehension tool.</span>指出了Maven是一个软件项目管理工具，（在此段将Maven翻译成软件项目管理工具我是有疑义的，但网上查看资料都是这样翻译的，而且Project Management直译的确有项目管理的意思，晚些时候再讨论此处）。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单纯的从字面意思上来理解，根本觉得ant与Maven是风马牛不相及的，而大家对于这两个工具为什么会划上等号，我觉得要从本质上来看Ant与Maven所做的工作了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ant既然是构建工具，那ant可以做哪些事呢？编译代码、单元测试、生成文档、打包、制作安装包、混淆代码、部署等等，ant的功能可以说是非常强大的，不过整个构建过程（构建的生命周期）里需要做哪些事情，完全是需要我们自己思考定义的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maven真正所做的工作其实和ant差不多，也是编译代码、单元测试、生成文档等等，那到底这两个工具间有什么异同呢？<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我想真正的差别还是体现在了思想上，在Maven的介绍页中（<a href="http://maven.apache.org/what-is-maven.html">http://maven.apache.org/what-is-maven.html</a>）提到Maven最初是在构建处理Jakarta Turbine项目的时候，发现这个项目的几个工程的ant构建脚本只有很细微的差别，于是Maven的作者想将构建工程标准化，对构建过程提供了一个指导性的思想，将项目构建生命周期具体化，（<a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html">http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html</a>）由此我想，为什么Maven的名称定义为Maven，可以认为Maven在思想上提供了专家级的意见的原因吧。<br>项目的构建生命周期被具体化后，首先是减少了对构建脚本的维护，让多个项目构建生命周期进行重用（也没啥重用的，反正用Maven生命周期都一样），让开发人员都使用这一套规范。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然，很多人是不吃这一套的，Maven强制开发人员接受自己定义构建标准除了让人感觉不自由、不灵活外，且担心Maven处理构建生命周期时，内部产生未知问题。还有一些小型项目，根本不需要如此完善的构建生命周期，使用Maven提供的构建生命周期，只是带来了不必要的复杂性。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以Maven也不是万金油，仍然需要根据项目的实际情况进行选择，对于涉及人员较多的大型项目，且在软件生命周期上与Maven的标准保持一致的情况下，就可以选择使用Maven。而对于灵活性要求较高、或者一次性的项目，使用Ant足矣。<br></span>
<img src ="http://www.blogjava.net/soulengineer/aggbug/114332.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/soulengineer/" target="_blank">SoulEngineer</a> 2007-04-28 14:40 <a href="http://www.blogjava.net/soulengineer/articles/114332.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>