Maven和spring-boot-dependencies

m52*_*791 3 maven spring-boot

我有一个Maven多模块项目,它在主pom.xml中将一些旧版本的spring-boot-dependencies设置为parent.所有子模块都从此主pom.xml继承spring boot依赖项.

这很好但是在一个新的子模块(也是多模块)中我想使用最新的spring引导版本而不改变项目中正在使用的那个(连同所有依赖项).

有没有办法聪明地覆盖从父派生的弹簧引导版本(及其所有依赖项)并在子模块中使用不同的版本?我试图<spring-boot.version>在所有新模块的子模块的pom.xml文件中的属性中设置spring boot的显式版本,但没有运气.

And*_*son 5

有没有办法聪明地覆盖从父派生的弹簧引导版本(及其所有依赖项)并在子模块中使用不同的版本?

当您使用特定版本的Spring Boot作为父级(或祖父母等)时,您说这是您要使用的Spring Boot版本.

我试图在所有新模块的子模块的pom.xml文件中的属性中设置spring boot的显式版本,但没有运气.

如果这确实有效,你最终会得到Spring Boot X版本的父版本,其配置包括该版本的Maven插件管理以及Spring Boot版本Y的依赖项.这种版本的混合可能导致奇怪和意外的行为.很难诊断.

如果你想能够混合和匹配这样的版本,你应该避免使用Spring Boot中的父级,而应该导入spring-boot-dependencies:

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.3.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

这使您可以完全控制版本,但代价是必须自己定义所需的任何插件管理.值得注意的是,您无法覆盖导入的pom中的属性.