Enhance.Technology.Area
技术前沿阵地
BlogJava
首页
新随笔
联系
聚合
管理
随笔 - 3 文章 - 7 trackbacks - 0
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
2007年4月 (3)
文章分类
maven(1)
文章档案
2007年4月 (1)
搜索
最新评论
1. re: 思考Maven - 专家级工具1
确实啊,maven定义了自己的一套目录布局,这样对于大项目有一定的优势,但是对于小项目来说还不如ant直观。
--于翔
2. re: Ant与Maven的对比-续-超越Ant?
让他们互相竞争,提高各自产品,不错的主意
--wfifi
3. re: 思考Maven - 专家级工具1
Maven2 的profile filter功能相当好用,每个开发者可以使用自己的profile,而且很容易就可以实现不同的配置策略(debug, production)
--GHawk
4. re: Ant与Maven的对比-续-超越Ant?
Maven和Ant在在部分功能上还是竞争的。Apache本身只是个基金组织,它可不管自己出钱开发的项目之间有没有竞争关系。
--Welkin Hu
5. re: 思考Maven - 专家级工具1
评论内容较长,点击标题查看
--xyz20003
阅读排行榜
1. Ant与Maven的对比-续-超越Ant?(2574)
2. 思考Maven - 专家级工具1(1292)
3. 开博(168)
评论排行榜
1. Ant与Maven的对比-续-超越Ant?(3)
2. 思考Maven - 专家级工具1(2)
3. 开博(0)
2007年4月29日
思考Maven - 专家级工具1
一Ant与Maven的对比
提到Maven就不得不提到Ant,
Apache Ant is a Java-based build tool.
这个是Ant的指南的导言中的第一句话,有两个意思,一是指明ant是基于java语言开发的,另一个意思是指明了ant是一个构建工具。而在Maven的主页上的第一句话
Maven is a software project management and comprehension tool.
指出了Maven是一个软件项目管理工具,(在此段将Maven翻译成软件项目管理工具我是有疑义的,但网上查看资料都是这样翻译的,而且Project Management直译的确有项目管理的意思,晚些时候再讨论此处)。
单纯的从字面意思上来理解,根本觉得ant与Maven是风马牛不相及的,而大家对于这两个工具为什么会划上等号,我觉得要从本质上来看Ant与Maven所做的工作了。
Ant既然是构建工具,那ant可以做哪些事呢?编译代码、单元测试、生成文档、打包、制作安装包、混淆代码、部署等等,ant的功能可以说是非常强大的,不过整个构建过程(构建的生命周期)里需要做哪些事情,完全是需要我们自己思考定义的。
Maven真正所做的工作其实和ant差不多,也是编译代码、单元测试、生成文档等等,那到底这两个工具间有什么异同呢?
我想真正的差别还是体现在了思想上,在Maven的介绍页中(
http://maven.apache.org/what-is-maven.html
)提到Maven最初是在构建处理Jakarta Turbine项目的时候,发现这个项目的几个工程的ant构建脚本只有很细微的差别,于是Maven的作者想将构建工程标准化,对构建过程提供了一个指导性的思想,将项目构建生命周期具体化,(
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
)由此我想,为什么Maven的名称定义为Maven,可以认为Maven在思想上提供了专家级的意见的原因吧。
项目的构建生命周期被具体化后,首先是减少了对构建脚本的维护,让多个项目构建生命周期进行重用(也没啥重用的,反正用Maven生命周期都一样),让开发人员都使用这一套规范。
当然,很多人是不吃这一套的,Maven强制开发人员接受自己定义构建标准除了让人感觉不自由、不灵活外,且担心Maven处理构建生命周期时,内部产生未知问题。还有一些小型项目,根本不需要如此完善的构建生命周期,使用Maven提供的构建生命周期,只是带来了不必要的复杂性。
所以Maven也不是万金油,仍然需要根据项目的实际情况进行选择,对于涉及人员较多的大型项目,且在软件生命周期上与Maven的标准保持一致的情况下,就可以选择使用Maven。而对于灵活性要求较高、或者一次性的项目,使用Ant足矣。
posted @
2007-04-29 06:57
SoulEngineer 阅读(1292) |
评论 (2)
|
编辑
收藏