Spring Boot\Cloud Maven项目版本管理问题

Spring Boot\Cloud Maven项目版本管理问题

前述:Spring Boot和Spring Cloud如果配置的时候不注意版本,就会出现各种各样奇奇怪怪的问题,手动管理项目依赖太麻烦。

使用Maven中的DependenciesManager节点来管理版本

一般常用的有下面三个:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.7.RELEASE</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.1</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.6.7</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

注意这里的 scope 和 type 节点不能少,不然不起作用。
DependenciesManager中的版本可以访问 https://start.spring.io/actuator/info 来查看。

下一步

使用了如上配置之后,当我们需要引入上面三个相关的依赖包的时候就可以不写版本号,配置的这三个依赖管理会自动帮我们找到适合的。

原理,为什么可以自动找到适合的?以spring-cloud-dependencies为例。

因为spring-cloud-dependencies下有全部与其相关的依赖包和对应的版本,当我们要引入某个包的时候,Maven做以下操作:

  • 如果有版本号,则直接获取,如果未写版本号,则下一步
  • 从dependencyManagement 的 dependencies 节点下寻找是否有与其对应的依赖包,如有,则填入这里的版本号,如没有,则版本号为 unkown.

我如何知道会引入哪个版本的依赖包?

在IDEA下,按住 Mac的Command按键,点击 artifactId 中的值,进入其对应的 POM 文件中,在这里可以找到对应版本。

posted @ 2022-05-03 20:38  zolmk  阅读(415)  评论(0编辑  收藏  举报