Maven -在Eclipse中禁止覆盖托管版本警告

polhcujo  于 2022-11-28  发布在  Maven
关注(0)|答案(5)|浏览(217)

我正在使用spring-boot,遇到了一个类似于here描述的错误。

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

我通过Spring引导覆盖了父pom.xml中定义的validation-api 1.0.0依赖项,这会给出一条烦人的警告消息:
正在覆盖用于验证api的托管版本1.0.0.GA
如何在Eclipse中永久地隐藏这个警告消息呢?它会同时出现在我的pom.xml和问题视图中。

cyvaqqii

cyvaqqii1#

出现该警告时,您可以打开警告上的"快速修复"菜单(Ctrl +1),然后选择
忽略此警告
这将在版本行上添加注解,例如:

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

您的问题是您手动将该注解添加到了错误的行。

hvvq6cgz

hvvq6cgz2#

由于项目使用的是spring-boot,因此可以在此处找到更正确的答案:https://stackoverflow.com/a/35385268/1568658

  • (因为我也遇到了同样的问题,上面的答案也不是很完整。我会在这里添加一个答案。)*
    发布原因:

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

解决方案:

<properties></properties>之间的相依性定义属性,以指定版本。
例如,

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

如何查找属性名称:

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

有一份来自Spring的文件更好地解释了这一点:https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

7xzttuei

7xzttuei3#

在主pom中输入您需要的版本。
这个警告意味着你试图覆盖在你的主pom中定义的工件版本。只要在主pom中输入你需要的版本,你甚至不需要在其他pom中使用<version />来依赖它。

sc4hvdpw

sc4hvdpw4#

我的问题是与lombok.jar版本。我有多个lombok版本和eclipse不知何故采取了一个版本,但它检测到更多的版本,所以无法选择它的版本。所以我去了maven文件夹(.m2),并删除了额外的版本的lombok,maven更新项目,错误消失。
但是我还没有提供Lombok版本的任何地方,eclipse选择一个版本,不知道如何。

yeotifhr

yeotifhr5#

很有用!我解决了这个问题。因为模块pom文件声明9.2.12.M0,而Spring启动引用V9.3。我覆盖了父pom文件中的V9.2。后面跟着“Eric Wang”

相关问题