Maven的感受

一年前我用过maven,是2版本。现在大家都在讨论3版本又多么好,兼容性,稳定性有多好的改善。当时我用2版本的时候,当时也有很多的博文说他有多么好,新的功能有多么强大,插件质量有了令人惊奇的提高。可是,我的实际操作中却处处碰壁。我当时想用maven配置Spring+tomcat的环境,起初怎么也不能把项目发布到tomcat上。后来可以了,但是spring却挂不上去。是插件错误。一直有人给过这样的评语:“maven有着伟大的想法,确用了最糟糕的插件实现”。那个时候,我深深体会到了这个痛苦,由于那个插件的错误,整个工程都瘫痪了,我不仅不能整合Spring,连项目想发布到tomcat上也不能成功。我搜索了所有网络上能够找到的文章,结果我还是没有成功。网上的论坛也没有人帮到我。我只好自认自己才疏学浅,退却了。

当时,3版本也在开发过程中,但是没有正是发布。从2008年就开始的计划,一直到现在也只是有一个beta版本。我看过Antlr的博文,里面的创始人已经放弃了maven,离开了项目组。多年的努力,他终于承认maven 过于复杂,搭建一个开发环境的时候太费时,学习曲线也非常陡峭。是什么原因呢?

我也想过这个问题,我觉得maven的质量不是maven本身所能完全控制的。它的质量不是只包括代码质量,尽管表面上看是这样的。它实际上是一种服务。它的原理是包依赖关系,和ubuntu和 redhat这些公司做的类似。ubuntu和redhat的包依赖管理其实还是很多问题,但是还是基本能够正常工作。 ubuntu和redhat能够做到这样一点,是因为他们的服务是有偿的。他们可以挣钱。而maven却是自由体,它基本不能凭借这个服务挣钱。而且,ubuntu的包的更新,现在也停留在一个同版本内,要想跨版本自动升级,大多数的结果就是直接崩溃,成功了也是错误连连。而maven却要为开发者提供各个版本的兼容性。很难。

总之,没有商业利益驱动,类库和插件版本兼容问题一直阻碍着maven的发展。也许,我们还是没有找到解决问题的办法。也许… 这个思路的实现本来就有点不切实际。