【问题标题】:M2E: Version is duplicate of parent version - Why is this a warning?M2E:版本与父版本重复 - 为什么这是一个警告?
【发布时间】:2012-01-05 23:41:51
【问题描述】:

我有几个 Maven 项目,每个项目都有一些共同的功能或至少共同的配置/依赖项。我将它提取到一个通用的 pom.xml 中,然后将几个方面模块化,例如持久性、与 Spring 相关的依赖项等等——所有这些都在它们自己的模块中,这些模块都继承自这个父 POM。

现在,“Common”是 1.0.0 版本,我希望从它继承“ProjectA”。我收到警告:

版本与父版本重复

我不完全理解为什么这是一个警告。我以为我可以选择从我的项目 POM 中省略版本以继承该版本。 (我是针对通用模块这样做的——比如common-spring为Spring应用添加了额外的通用依赖,而实际上ProjectA实际上继承自common-spring。)

这不就是一个选项吗?如果我将我的 ProjectA 版本更改为 1.0.1 或 2.0.0,一切都很好。

【问题讨论】:

  • 对于它的价值,我小心地只从 POM 继承并且我依赖于 JAR。我声明了一个在dependencyManagement 中使用的common.version 属性,这样ProjectA 就可以继承自common-spring(继承自common)并依赖common-io(继承自common)并且它们都是相同的版本。
  • 这个特殊警告是由 m2eclipse 还是 Maven 本身发出的? (您可以使用mvn verify 在命令行上检查— 可能— Maven 是否发出类似的东西。)除此之外,如果您可以发布pom.xml 文件,那将真的很有帮助有问题。很难可视化您的设置中发生了什么。
  • 这很公平。我会在星期三做这件事,因为我正在度假(虽然没有假期这样的事情!)。我很确定这是一个 m2e 警告。
  • @Doug 现在看来已修复,请参阅my answer below

标签: eclipse maven pom.xml m2e parent-pom


【解决方案1】:

这只是 m2e 试图变得聪明,因为版本元素(如组 ID)有时可能是多余的,并且可以从父 POM 继承,因此从您的子 POM 中删除此元素是安全的。

但有时这不是多余的信息,比如当父项目和子项目具有不同的生命周期时,m2e 应该允许禁用此警告。不幸的是,目前还没有办法做到这一点:http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

更新:正如 Duncan 所说,在较新的版本中,您可以禁用此警告。

【讨论】:

    【解决方案2】:

    如果它真的让你感到厌烦,请使用属性通过一些狡猾的手法来抑制警告:

    <version>${api.version}</version>
    <properties>
        <api.version>0.0.1-SNAPSHOT</api.version>
    </properties>
    

    但您真正要做的就是将警告移至控制台输出:

    [WARNING] Some problems were encountered while building the effective model for [project]
    [WARNING] 'version' contains an expression but should be a constant.
    

    【讨论】:

      【解决方案3】:

      较新版本的 m2e(自 1.1 起)现在允许您禁用此警告。

      首选项 > Maven > 警告 > 禁用“版本与父版本重复”警告

      原始错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=356796

      【讨论】:

      • +1 您可以在首选项中勾选它,但您需要执行 Project > Maven > Update Project ... 才能让它们消失
      • @slf 在最新版本的 Eclipse 中,只要您在首选项中更改 Maven 的 Errors/Warnings 设置并单击“应用”,就会出现一个弹出窗口,为您提供立即更新项目。
      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 2013-10-11
      • 2018-12-24
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 2017-05-19
      相关资源
      最近更新 更多