我正在尝试创建Spring Boot应用程序,它是我们项目的父pom的子模块(这取决于我们的内部框架,它锁定了弹簧依赖版本 - 截至目前我们在4.2.4-RELEASE)
如果我指定最新的Spring Boot版本(1.4.1-RELEASE),它取决于spring 4.3.3-RELEASE,我正面临冲突
其中一个是关注错误:
Caused by: java.lang.NoClassDefFoundError:
org/springframework/beans/factory/ObjectProvider
这个类是在4.3中引入的,它解释了错误
有没有办法如何在不更新内部框架中的Spring版本的情况下保持Spring Boot依赖项的最新状态?
答案 0 :(得分:0)
您应该通过将spring-boot-starter-parent
作为您的父级来保持所有Spring依赖项同步。
为您设置所有<dependencyManagement>
,当您引入特定的依赖项时,不应该使用<version>
。
如果您需要覆盖父级管理的版本,则应该有一个可以更改的属性,例如, logback.version
,spring-security.version
等
您还可以使用<excludes>
完全删除传递依赖项,并确保从其他地方提取它,从而阻止其中一个依赖项覆盖其依赖项的版本。但这更加脆弱。
您也可以尝试将spring-boot-dependencies
导入dependencyManagement
,但您可能会为自己尝试将现有项目添加为Boot项目的父项而不是依赖项而做更多工作。