Maven 3 - 值得吗?

时间:2010-07-01 11:19:17

标签: maven-3

Maven 3 beta已经推出几周了,我只想在Maven 3的功能列表上看到你的观点。因为对我来说,只添加了两个主要功能

  1. 在构建生命周期中并行执行项目
  2. 自定义生命周期
  3. 其他所有内容似乎都是错误修复或小改进。所以你怎么看? Maven 3值得等待吗?

4 个答案:

答案 0 :(得分:75)

Maven 3有什么新功能?这里有一些你可以在网上找到的内容的汇编。

  • 向后兼容性 - Maven 3向后兼容,非常重要(特别是对于经历过Maven 1到Maven 2转换的人)。
  • 无版本的父元素 - Maven 3将不再需要在子模块中指定父版本。 这个很棒(在Maven 3.1中)。
  • Mixins - 用于POM成分(在Maven 3.1 AFAIK中)。
  • 使用属性的XML POM格式 - 您可以使用属性而不是元素。
  • Polyglot Maven - 你现在可以用不同的语言编写你的POM文件(我个人不会对XML格式感到恼火,所以我不确定我会经常使用它)。
  • 扩展点 - 装饰生命周期或插件(挂钩行为而不是扩展插件)。
  • 可查询的生命周期 - 执行计划和执行的解耦。
  • Plugin-API中的更改 - 这更多针对插件开发人员(注释而不是javadoc标记,扩展点,可查询生命周期)。
  • 更好的错误和完整性报告 - 错误更清晰,并与Maven 3 wiki相关联,以获得详细说明。用户会喜欢这个。
  • Mercury - 完全重写工件解析系统(现在是专用产品)实际上,Maven 3使用Aether而不是Mercury。
  • Maven Embedder - 这非常适合IDE和构建工具(可以“监听”构建过程)。
  • 增量构建支持 - 特别适用于M2Eclipse(大性能提升)。
  • 从Maven核心提取的网站和报告 - 网站尚不起作用(将在最终版本中修复),报告确实(但邀请您使用Sonar等外部质量工具)。
  • Maven shell - 优化的执行环境(Maven Shell awesome )。

总而言之,你并非完全错误,表面上没有那么多变化(虽然我真的很喜欢更好的错误报告,只是不能等待无版本的父元素的东西)。但是引擎盖下的变化使Maven 3 快得多,这是巨大的。我希望通过新提供的可能性(即将到来)实现伟大的创新。

最后,性能提升已足以让我觉得值得(在更短的时间内构建非常有价值),其他东西都是奖金。由于我没有广泛使用网站插件,我已经在部分版本中使用Maven 3超过4个月了,我对它非常满意。

另见

答案 1 :(得分:1)

Maven 3的想法是毫无问题地取代Maven 2 ......目前有一些(特别是网站)。我建议用Maven 3测试当前现有的Maven 2项目,看看是否出现了一些问题。在内部,完整的代码已被重构等,以使新的改进成为可能。从核心中删除了一些部分(如网站生成等)。

答案 2 :(得分:1)

不,它与矩阵所说不兼容。在2和3之间存在大量不兼容性,并且存在页面指向行为。如果您在公司中从事企业项目,您可以放心,您将遇到这些问题。

如果运行不是10k-100k代码构建的企业版本,那么性能很好......系统150万行怎么样?这在企业中更为常见。如果您的软件构建2-4小时,并且您仍需要持续集成,那么您将研究并行构建和测试。 Maven 3在这一点上很方便......但是在这一点上,树分辨率/类路径根据目标而不同是不可接受的(依赖:树使用传统机制,而常规构建目标依赖于Aether)。当人们不能依赖于在软件包装之前检查类路径进行部署时,它会让人想起Ivy / Ant问题(你没有在生产中使用本地Maven仓库,对吗?......但是你还需要执行软件审计,对吗?)

答案 3 :(得分:0)

他们删除了“-r”选项并将其替换为极其复杂的系统。

Maven鼓励复制/粘贴poms。我希望他们能在3.0中解决这个问题。他们放弃了“mixins”功能直到maven 3.1。

除了构建性能和一些小错误修复之外,它不值得麻烦。