50

Maven 3 beta 几周后就发布了,我只是想听听你对 Maven 3 特性列表的看法。因为对我来说,只添加了两个主要特性

  1. 在构建生命周期中并行执行项目
  2. 自定义生命周期

其他一切似乎都是错误修复或小改进。所以你怎么看?Maven 3 值得等待吗?

4

4 回答 4

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很棒)。

总而言之,您并没有完全错,表面上并没有太多变化(尽管我真的很喜欢更好的错误报告,并且迫不及待地等待无版本的父元素的东西)。但是引擎盖下的变化使 Maven 3更快,这是巨大的。而且我希望新提供的可能性会发生巨大的创新(尽管尚未到来)。

最后,性能改进已经足以让我觉得值得(在更短的时间内构建是非常有价值的),其他的都是奖金。而且由于我没有广泛使用站点插件,我已经在我的一些构建中使用 Maven 3 超过 4 个月,我对它非常满意。

也可以看看

于 2010-07-02T14:50:30.093 回答
1

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

于 2010-07-01T11:24:15.193 回答
1

不,正如矩阵所说,它不兼容。2 和 3 之间有很多不兼容性,并且存在页面指向行为。如果你在一家公司从事企业项目,你可以放心,你会遇到这些问题。

就性能而言,如果您运行不是 10k-100k 代码构建的企业构建......系统 150 万行怎么样?这在企业中更为常见。如果您的软件构建时间为 2-4 小时,并且您仍然需要持续集成,那么您将考虑并行构建和测试。Maven 3 在这一点上派上用场......但此时树分辨率/类路径因目标而异是不可接受的(依赖关系:树使用旧机制,而常规构建目标依赖于 Aether)。这让人想起 Ivy/Ant 问题,因为在部署软件包之前不能依赖检查类路径(您在生产中没有本地 Maven 存储库,是吗?...但您仍然需要执行软件审计,对吗?)

于 2013-01-10T19:13:27.000 回答
0

他们删除了“-r”选项,并用一个极其复杂的系统取而代之。

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

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

于 2011-12-29T16:34:24.763 回答