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"
我正在使用 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"