pom.xml基础结构
pom.xml是Project Object Model的缩写,是Maven项目的核心配置文件,所有Maven项目都必须包含这个文件。它的基础结构由模型版本、项目坐标、打包方式等基础信息组成,下面是一个最基础的pom.xml示例:

<?xml version="1.0" encoding="UTF-8"?>
<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>
<!-- 项目坐标 -->
<groupId>com.example</groupId>
<artifactId>demo-project</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>demo-project</name>
<description>示例Java项目</description>
</project>
核心坐标说明
项目坐标是Maven定位项目的唯一标识,包含三个核心部分:
- groupId:组织标识,通常使用公司或组织的反向域名,比如com.ipipp
- artifactId:项目标识,通常是项目的名称
- version:项目版本号,比如1.0.0-SNAPSHOT表示快照版本
依赖管理是pom.xml最常用的功能,通过<dependencies>标签可以添加项目所需的第三方依赖,每个依赖通过坐标定位。下面是一个添加Spring Boot Web依赖的示例: 依赖可以通过<scope>标签指定作用范围,常见的依赖范围如下: 通过<build>标签可以配置项目的构建流程,比如指定编译版本、添加构建插件等。下面是一个配置Java编译版本为1.8的示例: 实际开发中经常需要区分开发、测试、生产等不同环境,pom.xml可以通过<profiles>标签实现多环境配置。下面是一个多环境配置示例: 打包时可以通过 当项目中有多个依赖使用相同版本时,可以通过<properties>标签统一版本号,避免重复修改。示例如下: 有时候第三方依赖会引入我们不需要的传递依赖,可以通过<exclusions>标签排除。示例如下:packaging</code>标签用于指定项目的打包方式,默认是jar,如果是Web项目可以设置为war。依赖管理配置
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
依赖范围说明
scope值 作用范围 示例场景 compile 默认范围,编译、测试、运行都有效 Spring核心依赖 test 仅测试阶段有效 JUnit测试依赖 provided 编译和测试有效,运行时不生效 Servlet API依赖 runtime 测试和运行时有效,编译时不生效 JDBC驱动依赖 构建与插件配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
多环境配置
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
mvn package -P prod</code>命令指定使用prod环境的配置。常用配置技巧
版本统一管理
<properties>
<spring.boot.version>2.7.0</spring.boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
排除传递依赖
<dependency>
<groupId>com.example</groupId>
<artifactId>demo-dependency</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>