gpt4 book ai didi

java - 在多个项目中管理 Spring Boot 父 POM 版本

转载 作者:行者123 更新时间:2023-11-30 08:07:51 26 4
gpt4 key购买 nike

我创建了几个 Spring Boot 项目,每个项目的 POM 都包含一个 spring-boot-starter-parent 作为 parent 。每当出现新版本时,我目前需要在每个 POM 中手动更新它。

添加已经具有 spring-boot-starter-parent 的 POM 依赖项没有帮助,Spring Boot documentation声明使用“导入”范围仅适用于依赖项,而不适用于 Spring Boot 版本本身。

有没有办法定义一个“super-pom”,我的所有项目都可以从中继承,我可以在其中设置一次 Spring Boot 版本,而不是遍历每个项目?

最佳答案

这是您可以尝试的一种方法。

你的父 POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- Do you really need to have this parent? -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.7.RELEASE</version>
</parent>
<groupId>org.example</groupId>
<artifactId>my-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Parent POM</name>
<properties>
<!-- Change this property to switch Spring Boot version-->
<spring.boot.version>1.2.7.RELEASE</spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Declare the Spring Boot dependencies you need here
Please note that you don't need to declare the version tags.
That's the whole point of the import above.
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency>
<!-- About 50 in total if you need them all -->
...
</dependencies>
</project>

一个子 POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.example</groupId>
<artifactId>my-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>my-child</artifactId>
<name>Child POM</name>
</project>

如果您对子 POM 执行 mvn dependency:tree,您会看到它们都在那里。

关于java - 在多个项目中管理 Spring Boot 父 POM 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com