Maven - 在 Eclipse 中抑制覆盖托管版本警告

Maven - Suppress Overriding managed version warning in Eclipse

我正在使用 spring-boot,遇到了与 here 中描述的类似的错误。我将以下内容添加到我的 pom.xml.

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$-->
        <version>1.1.0.Final</version>
    </dependency>

我正在通过 Spring 引导覆盖我的父 pom.xml 中定义的验证-api 1.0.0 依赖项,这给出了讨厌的警告消息:

Overriding managed version 1.0.0.GA for validation-api

如何在 Eclipse 中永久禁止显示此警告消息?它出现在我的 pom.xml 和我的问题视图中。

当该警告出现时,您可以打开警告上的快速修复菜单 (Ctrl+1) 和 select

Ignore this warning

这将在版本行上添加注释,例如:

<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$-->
</dependency>

你的问题是你在错误的行上手动添加了评论。

在主 pom 中输入您需要的版本。

此警告意味着您正试图覆盖在主(顶级)pom.xml 中定义的工件版本。只需在主 pom 中输入您需要的版本,您甚至不需要在其他 pom 中使用 <version /> 来实现此依赖项。

由于该项目正在使用 spring-boot,因此可以在此处找到更合适的答案:

(因为我遇到了同样的问题,上面的回答也不是很完整,我会在这里补充一个答案。)

问题原因:

spring-boot 定义了许多依赖项及其版本,当您使用 spring-boot 作为父项时,这些依赖项会被继承,并且用不同版本覆盖其中一个依赖项会收到警告,因为它可能会破坏其他库的依赖性。

解法:

<properties></properties> 之间的依赖定义一个 属性,以指定版本。

例如

        <properties>
            <reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version>
        </properties>

如何找到属性名字:

  • 在 IDEA 或 Eclipse 中打开 pom.xml
  • Ctrl + <parent>标签上点击打开parent的pom,需要递归点击两次才能最终获取 artifactId 为 spring-boot-dependencies.
  • 的 pom 文件
  • 打开该 pom 后,搜索您的依赖项,例如 servlet-api,您可以看到默认版本。

来自 spring 的文档解释得更好:https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

有用!我解决了这个问题。作为模块 pom 文件声明 9.2.12.M0 而 spring-boot 引用 V9.3 。我覆盖了父 pom 文件中的 V9.2。接下来是 "Eric Wang"