为什么每个人最终讨厌并离开Maven

敏捷对象大师Martin Fowler的同事写了这篇文章:为什么每个人最终讨厌并最终离开Maven• Why Everyone (Eventually) Hates (or Leaves) Maven

Martin Fowler倡导一种内部可编程工具 InternalReprogrammability,并且分享了类似Emacs 和 Smalltalk让人心灵减少悲苦的工具。

作者总结了编程世界中两种可扩展可编程的抽象类型:Composable组合与Contextual语境上下文。

Maven是一个经典的contextual工具:它是武断的,刚性的,通用的,和教条的,项目之初,它容易通过插件添加行为和其他预建的细节。但随着时间的推移,项目变得不通用的,更像一个真正的,混乱的项目。在项目早期,因为没有人知道生命周期等特点,刚性制度当然很好,但是随着时间推移,项目复杂性增加,需要程序员有大量分支意见,这时Maven已经无能为力。

语言构建工具应该更加composable,作者推荐的是Rake,Ruby世界的构建工具,是一个简单强大充满魔力的捆绑工具。当作者从Ant到Rake时,发现Ant的task是可以在Rake中使用,是一种类似Ant世界。

很多人可能以为作者攻击Maven,成为Maven-bashing,作者只是想让大家明白,没有工具在任何场景上下文下工作得完美,Maven是启动新项目的好工具。


[该贴被banq于2013-01-23 11:07修改过]

Ant+ivy 实现了跟Maven一样的功能,但我不知道。。哪个更好用。。现在主流还是Maven吧。

呃,我不知道板桥是从哪里看的这些文章,从以前的数据库已死到现在的为什么每个人最终讨厌并离开Maven,我知道这些文章都不是板桥写的而是国外一帮人翻译的东西,但既然板桥翻译了并发布在论坛上,从一定程度上来说,板桥是同意这些观点的,先不说这些观点是否正确,但这种武断的态度让我觉得很不舒服——当然,或许作者也许只是所谓的标题党,为了吸引大家的眼球罢了。
我们知道每种技术都有其优势跟适用方向,这世界上没有银弹。每种技术几乎都有其拥护者和反对者,但是一棍子打死的做法令人生厌。
用一句流行的话——我又被代表了。
[该贴被snow0613于2013-01-23 17:03修改过]

2013-01-23 17:01 "@snow0613"的内容
作者也许只是所谓的标题党,为了吸引大家的眼球罢了 ...

不要介意标题,大部分都是个人观点,兼听则明。
[该贴被banq于2013-01-23 19:37修改过]

项目混乱已否,关键在人而非工具,maven也没那么难用,至少项目模块统一管理方面还是不错。

2013-01-23 22:11 "@clonalman"的内容
至少项目模块统一管理方面还是不错 ...

是的,缺点也是其优点,正如战争时期铁腕统治一般能够打赢战争一样,但是随着项目变大,灵活敏捷要求提高,生命周期动态运作,这些当初很有力的控制看来就显得武断 刚性和教条。

用隋唐演义中杨广一句话,铿锵但不能笨重。

俩个字回复就是:扯淡 :)

我们的项目中有超过300个的maven modules, 如果没有maven的这种“刚性”,很难想象如何去管理维护这种复杂的依赖性。rake我也有接触,rake给予了更好的自由度,如果在java世界中选择,gradle应该会是个更好的选择。