观察spring-boot-dependencies在主POM中的配置如下:

<!-- SpringBoot 依赖配置 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.6.7</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<type>pom</type> <scope>import</scope>告诉 Maven 将 spring-boot-dependencies 这个POM 中的依赖项版本信息导入到当前项目中。

点击进入spring-boot-dependencies进去查看,这是一个特殊的 POM,它包含了 Spring Boot 项目中常用的依赖项及其版本,包括起步依赖。当你在 Maven 项目中引入这个依赖管理 POM 时,你就可以直接使用 Spring Boot 的推荐配置,而不需要在每个项目中分别指定依赖的版本。这有助于简化项目的构建配置。

类似spring-boot-dependencies的还有spring-cloud-dependencies、spring-cloud-dependencies、spring-boot-starter-parent等,都属于依赖管理POM。

spring-boot-dependencies 只管理着部分依赖,还有一些第三方依赖没有管理到,我们可以参考spring-boot-dependencies这个POM管理版本号的方法,在主POM中管理其他的依赖版本。除非子POM使用不一样的版本号,否则子POM无需填写版本号。

例如验证码和分页的依赖管理:

...
<properties>
    <spring-cloud.version>2021.0.1</spring-cloud.version>
    <spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
    <spring-boot.version>2.6.7</spring-boot.version>
    <kaptcha.version>2.3.2</kaptcha.version>
    <pagehelper.boot.version>1.4.1</pagehelper.boot.version>
    ...
</properties>
<!-- 依赖声明 -->
<dependencyManagement>
    <dependencies>
        <!-- SpringCloud 微服务 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- SpringCloud Alibaba 微服务 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- SpringBoot 依赖配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- 验证码 -->
        <dependency>
            <groupId>com.github.penggle</groupId>
            <artifactId>kaptcha</artifactId>
            <version>${kaptcha.version}</version>
        </dependency>
        <!-- pagehelper 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>${pagehelper.boot.version}</version>
        </dependency>
    </dependencies>
    ...
</dependencyManagement>
...

总结

这篇文章介绍了主POM中引入依赖管理 POM的好处,即简化项目的构建配置;同时从依赖管理 POM中学习到它的依赖版本管理方法。但是值得注意的事,对于单体项目POM的配置,可以不用这么讲究。

GitHub 加速计划 / sp / spring-boot
73.97 K
40.4 K
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:1 个月前 )
fdf24c6c Closes gh-42976 6 天前
3c42ba8c * pr/42974: Fix copyright year of updated file Polish Closes gh-42974 6 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐