我有多个 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>
您必须将父级更新为
2.1.4.release
。这是因为如果孩子和父母不同步,可能会出现很多发育问题。
提示:您可以删除子依赖项中的版本标记。
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 模块,否则您将浪费大量时间来调试部分设置引起的问题。