从父 POM 覆盖 spring-boot 版本

问题描述 投票:0回答:2

我有多个 spring 项目,它们都具有相同的自定义父 POM,它们都从中继承了 spring-boot 版本 (1.5.18.RELEASE)。只需要其中一个子项目更新到2.1.4.RELEASE版本,但是当我导入spring-boot-dependencies时,子项目中的spring-boot依赖仍然保持在1.5.18.RELEASE版本。

自定义父 POM:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.18.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<groupId>com.example</groupId>
<artifactId>services</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Services :: Parent</name>
<description>Parent Project for Services</description>

子 POM:

<parent>
    <artifactId>services</artifactId>
    <groupId>com.example</groupId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../services/pom.xml</relativePath>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
java spring dependency-management
2个回答
0
投票

您必须将父级更新为

2.1.4.release
。这是因为如果孩子和父母不同步,可能会出现很多发育问题。 提示:您可以删除子依赖项中的版本标记。


0
投票

spring-boot-starter-parent
不仅定义依赖项,还配置插件和船舶属性。因为您要从 Spring Boot 1.5.X 升级到 Spring Boot 2.X,所以仅仅升级版本很可能是不够的,主要版本之间存在不兼容的更改,例如Spring Boot 1.5.X 是 Java 6+,但 Spring Boot 2.X 是 Java 8+。

您应该使用

spring-boot-starter-parent-2.1.4.RELEASE
作为您孩子的家长
pom.xml
。您当前的方法是修补,请遵循 Spring Boot 文档并将子模块设置为正确的 Spring Boot 2.X 模块,否则您将浪费大量时间来调试部分设置引起的问题。

© www.soinside.com 2019 - 2024. All rights reserved.