我正在使用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中定义的validation-api 1.0.0依赖关系,这给出了令人讨厌的警告信息:
覆盖托管版本1.0.0.GA以进行验证-api
如何在Eclipse中永久禁止此警告消息?它出现在我的pom.xml和我的问题视图中。
答案 0 :(得分:29)
当出现该警告时,您可以打开警告上的快速修复菜单(Ctrl + 1)并选择
忽略此警告
这将在版本行中添加注释,例如:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$-->
</dependency>
您的问题是您在错误的行上手动添加了评论。
答案 1 :(得分:21)
由于项目正在使用spring-boot
,因此可以在此处找到更合适的答案:https://stackoverflow.com/a/35385268/1568658
(因为我遇到了同样的问题,上面的答案也不是很完整。我会在这里添加一个答案。)
问题原因:
spring-boot
定义了许多依赖关系&amp;他们的版本,当你使用spring-boot
作为父项时,这些依赖项被继承,并且用不同的版本覆盖其中一个依赖项会得到警告,因为它可能会破坏其他库。的依赖关系。
<强>解决方案:强>
在<properties></properties>
之间定义该依赖项的属性,以指定版本。
e.g
<properties>
<reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version>
</properties>
如何查找属性名称:
ctrl + click
标记上<parent>
打开父级的pom,需要递归点击两次以最终获得pom,其中artifactId为spring-boot-dependencies
servlet-api
,您就可以看到默认版本。春天的文件更好地解释了它:https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot
答案 2 :(得分:3)
在主pom中输入您需要的版本。
此警告表示您正在尝试覆盖主(顶级)pom中定义的工件版本。只需在主pom中输入您需要的版本,您甚至不需要在其他poms中使用<version />
来获取此依赖关系。
答案 3 :(得分:-2)