我正在尝试创建Spring Boot应用程序,它是我们项目的父pom的子模块(它依赖于我们的内部框架,该框架锁定了spring依赖版本--目前我们是4.2.4版本)
如果我指定最新的Spring Boot版本(1.4.1-RELEASE),它依赖于spring 4.3.3-RELEASE,我将面临冲突
其中之一是以下错误:
Caused by: java.lang.NoClassDefFoundError:
org/springframework/beans/factory/ObjectProvider这个类是在4.3中引入的,它解释了这个错误
有没有一种方法可以让我的Spring Boot依赖保持最新,而不需要在内部框架中更新Spring版本?
发布于 2016-09-27 20:58:26
您应该通过将spring-boot-starter-parent设置为父对象来保持所有Spring依赖项的同步。
这就为您设置了所有的<dependencyManagement>,当您引入特定的依赖项时,您就不应该使用<version>。
如果您需要覆盖由父级管理的版本,则应该有一个您可以更改的属性,例如logback.version、spring-security.version等。
您还可以通过使用<excludes>完全删除传递依赖项,并确保从其他地方拉入它,从而阻止您的某个依赖项覆盖其依赖项的版本。不过,这要脆弱得多。
您也可以尝试将spring-boot-dependencies导入到您的dependencyManagement中,但是尝试将现有项目添加为引导项目的父项目,而不是作为依赖项,可能会让您自己做更多的工作。
https://stackoverflow.com/questions/39725127
复制相似问题