Spring Boot pom.xml 配置文件解析
Spring Boot 项目的 pom.xml 是 Maven 构建工具的核心配置文件,定义了项目依赖、插件、构建配置等信息。以下是对其关键部分的详细解析:
项目基本信息
XML
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
groupId: 组织或公司唯一标识,通常采用反向域名规则artifactId: 项目唯一标识version: 项目版本号,SNAPSHOT 表示开发版本packaging: 打包方式,Spring Boot 通常使用 jar
父项目依赖
XML
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
<relativePath/>
</parent>
- 继承
spring-boot-starter-parent可以统一管理依赖版本 - 自动包含常用插件配置(如打包插件)
- 提供默认的 Maven 资源过滤
项目依赖管理
XML
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
spring-boot-starter-*是 Spring Boot 提供的标准依赖模块- 无需指定版本号(由父 POM 管理)
scope定义依赖作用域(test 表示仅测试时使用)
构建配置
XML
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
spring-boot-maven-plugin提供打包支持- 可将所有依赖打包成可执行 jar(fat jar)
- 支持运行
mvn spring-boot:run直接启动应用
属性配置
XML
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
- 定义项目级变量,便于统一管理
- 可覆盖父 POM 中的默认配置(如 Java 版本)
依赖管理
XML
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2022.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 用于管理依赖版本(不实际引入依赖)
- 特别适用于多模块项目
importscope 可继承其他 POM 的依赖管理
资源过滤
XML
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
- 启用资源过滤可替换配置文件中的占位符
- 常用于区分不同环境的配置(如 application-${env}.properties)
典型特性说明
Spring Boot 的 POM 设计遵循"约定优于配置"原则,通过 starter 机制简化依赖管理。例如:
spring-boot-starter-web自动包含 Tomcat 和 Spring MVCspring-boot-starter-data-jpa包含 Hibernate 和 JPA 相关依赖spring-boot-starter-actuator提供监控端点
自定义配置示例
添加 MyBatis 和 MySQL 依赖:
XML
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
多环境配置
通过 profiles 区分不同环境:
XML
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</profile>
</profiles>
可通过 mvn -Pprod 激活生产环境配置