最新的子模块中的Spring启动版本&父

时间:2016-09-27 12:47:55

标签: spring spring-boot

我正在尝试创建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依赖项的最新状态?

1 个答案:

答案 0 :(得分:0)

您应该通过将spring-boot-starter-parent作为您的父级来保持所有Spring依赖项同步。

为您设置所有<dependencyManagement>,当您引入特定的依赖项时,不应该使用<version>

如果您需要覆盖父级管理的版本,则应该有一个可以更改的属性,例如, logback.versionspring-security.version

您还可以使用<excludes>完全删除传递依赖项,并确保从其他地方提取它,从而阻止其中一个依赖项覆盖其依赖项的版本。但这更加脆弱。

您也可以尝试将spring-boot-dependencies导入dependencyManagement,但您可能会为自己尝试将现有项目添加为Boot项目的父项而不是依赖项而做更多工作。