首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

为啥要用maven - 1

2012-07-15 
为什么要用maven - 1都说maven很好很强大,我就在想为什么呢?今天不妨认识一下她。maven本身的意思是“专家”,

为什么要用maven - 1
都说maven很好很强大,我就在想为什么呢?今天不妨认识一下她。
maven本身的意思是“专家”,大概是告诉人们我很牛。哈哈。我们先看看这个专家的想法:
Philosophy, 哲学
一提到maven,你准想到ant,老想和这个build元老级工具比一比谁牛。可以maven却不想和ant比肩。他的目标更远大。ant确实是一个很强大的build工具箱,而maven不想成为第二个。他的想法是想基于模式来建立一个基础架构,这个架构具有可视性,可重用性,可维护性,易于理解等特性。
这些“性”似乎是我们开发和项目管理中希望做到有很难做到的。停下来,让大脑想一会,你在项目开发中遇到了什么问题:

每天都在coding,不知道别人在干什么?
写了半天的代码,偶尔见听到别人以前写过?晕倒
只知道要实现这个接口,不了解整个项目的构成,和构建过程?迷糊
勤快的人时不时去看看别人的代码,也常常因为太复杂,不知道从何入手?

一个项目完成了,要开启一个新的项目,发现这个新的项目除了业务不同外,底层技术和构架,以及构建过程都大部分相似。怎么办?copy过来修改?试过没有?你可能会半途而废。尤其当不是你开发的项目,看懂别人的,没门。大部分都是把lib copy过去,管他有没有用。多了比少了强。再吧ant的build.xml复制过去改一下,大功告成。似乎项目的壳子准备好了,谁然办法土了点,也还凑合。总想应该还有更好的办法。。。

回顾过去做过的项目,是不是总是重复着built, tested, packaged, documented and deployed这些过程,当然,这都是pm不可少的。这些过程在不同的项目中会有不同。Maven说能从变中抽出不变,模式pattern, 让项目组的人都能透过pattern来清晰的认识项目。如果你是pm,有没有在开始的时候觉得创建这样一个空项目感到繁琐,有没有一遍又一遍的给你的team mem说我们的目录要这样建立。如果你的是一个新手,是不是不知道什么是项目,项目中有哪些东西,怎么建目录结构。干脆去baidu helloworld,你会发现五花八门,绝对让你更迷糊。多想有个大拿在旁边指点一下啊。另外,弄了半天,却不知道怎么运行,失败,不搞了。哈哈,有了maven,就如同一个大拿帮你开个好头。有了maven,pm,就像有了秘书,“嗨,小马,准备一个空项目,我们要开工了”,呵呵,不是所有人都有秘书哦。

什么?maven能帮我们?看来有戏。亮出你的法宝:
法宝1. Archetype 原型
字面意思就看出是一种模板技术,模板里面透着模式哦。看来不是吹的。
利用Archetype,maven能快速帮你生成一个基本的项目,统一的目录结构,基本的配置文件,为什么这样建立目录,这就是总结前人的经验了。这就是项目目录模式吧。安装好maven以后,执行下面的命令就能创建一个基本的项目:

      17 楼    yizhilong28    2011-03-24              个人源代码管理使用maven。
在公司,上网都困难,不知道是不是普遍现象。
只能说,在天朝maven只是浮云。 18 楼 gigix 2011-03-24   ltian 写道gigix 写道那个,我第一次用Maven是8年前…现在还在讨论“为什么要用”啊?
用了8年,写点心得呗!做点贡献!
心得噢…转帖个内部邮件吧
引用Maven has a lot of very poor conventions.

The conventions work if you follow them exactly and if you project is suited to being constrained by those conventions. Every single enterprise web project I have ever worked on has not fit into those conventions.
This means you end up having to 'hack' into the conventions to get the behaviour you want ( add a performance test run as part of the 'functional' tests for example ).

Also the conventions are poorly explained and poorly documented, especially when you start using plugins. The result is a mess that is only comprehensible to a maven 'expert'. The cost of writing the basic build functionality yourself so that you have build system that is traceable without knowledge of obscure maven magic is more than worth it IMHO.

If is for these reasons that we have rippend Maven out of a lot of projects over the years.

Buildr looks like it allows you to drop down Ant or Ruby if you need to which sounds promising - I would still need convincing that it adds enough benefit to be worthwhile. Be wary of tools that make the easy stuff trivial, and the hard stuff harder.
基本上,我对Maven的态度就是这样:如果一个项目已经在用它,fine,我不介意;如果还没有开始用,嗯,there must be something better than it given the fact it has been there for over 8 years. 19 楼 cyberblue 2011-03-27   为什么不能用Maven?

1. 有些项目已经积重难返,谁也搞不清楚里面哪些库有用哪些库没用,甚至一些已经没有人再维护的库还在用。
2. 程序员日用品化,员工换了一茬又一茬,留下了大量连架构师都搞不清楚的架构。
3. 大部分项目被IDE绑架,离了eclipse根本没法跑起来,为何Oracle拼命支持Maven?就是要打破eclipse的垄断
4. 某些在Build过程中需要调用脚本的项目,要迁移到Maven上还是离不开ant
5. “现在不是能用么?为什么还要用Maven?”

下面阐述一下我自己的经验,

我喜欢开源项目,特别是喜欢找一些开源项目的源代码,用了maven的开源项目,结构非常清晰,很容易就能读懂,用了maven的开源项目就是为了结构清楚,方便别人加入,maven起先就是为了开源项目定制的,而且喜欢maven的人,大多不会再去写ant脚本,也不会再用eclipse建项目,Maven就是一分离出来的小众工具,没计划要变成大众软件 20 楼 JackyCheng2007 2011-03-28   cyberblue 写道为什么不能用Maven?

1. 有些项目已经积重难返,谁也搞不清楚里面哪些库有用哪些库没用,甚至一些已经没有人再维护的库还在用。
2. 程序员日用品化,员工换了一茬又一茬,留下了大量连架构师都搞不清楚的架构。
3. 大部分项目被IDE绑架,离了eclipse根本没法跑起来,为何Oracle拼命支持Maven?就是要打破eclipse的垄断
4. 某些在Build过程中需要调用脚本的项目,要迁移到Maven上还是离不开ant
5. “现在不是能用么?为什么还要用Maven?”

下面阐述一下我自己的经验,

我喜欢开源项目,特别是喜欢找一些开源项目的源代码,用了maven的开源项目,结构非常清晰,很容易就能读懂,用了maven的开源项目就是为了结构清楚,方便别人加入,maven起先就是为了开源项目定制的,而且喜欢maven的人,大多不会再去写ant脚本,也不会再用eclipse建项目,Maven就是一分离出来的小众工具,没计划要变成大众软件
你说的确实是一些现实问题。不过我觉得尽量还是朝着更好的方向走才会走的更好。至少在新项目中可以用起来,老的项目可以先不动,等下次升级或者维护的时候在慢慢迁移。
21 楼 yangyi 2011-05-22   最大优点就是库、代码、IDE三者分离了,额外的优点是类库,源码管理,标准化

热点排行