pom.xml 常用标签大全

标签 作用 示例

<project> 必须的根标签,所有内容都包裹在里面。 <project xmlns=...>...</project>
<modelVersion> 定义 POM 模型的版本(固定写法)。通常是 4.0.0。 <modelVersion>4.0.0</modelVersion>
<groupId> 项目组织 ID,通常是公司或组织的域名倒写。 <groupId>com.example</groupId>
<artifactId> 项目的名字,通常是模块或应用名称。 <artifactId>admin-backend</artifactId>
<version> 项目的版本号。 <version>1.0.0</version>
<packaging> 打包方式,默认是 jar,也可以是 war(Web 项目)。 <packaging>jar</packaging>
<name> 项目的名称(可选,主要用于描述)。 <name>Admin Backend System</name>
<description> 项目的简短描述(可选)。 <description>A Spring Boot Admin system</description>

依赖管理相关标签

标签 作用 示例

<dependencies> 依赖列表,包含所有 <dependency><dependencies>...</dependencies>
<dependency> 单个依赖项。 <dependency>...</dependency>
<groupId> 依赖库的组织 ID。 <groupId>org.springframework.boot</groupId>
<artifactId> 依赖库的名称。 <artifactId>spring-boot-starter-web</artifactId>
<version> 依赖库的版本号。 <version>3.1.2</version>
<scope> 依赖范围(如 compile、test、provided)。 <scope>test</scope>

常见 scope:

compile(默认):编译、运行、打包都需要。

test:仅在测试阶段需要。

provided:编译需要,运行环境已提供,比如 Servlet API。

构建配置相关标签

标签 作用 示例

<build> 构建配置(比如插件、输出目录)。 <build>...</build>
<plugins> 插件列表,包含多个 <plugin><plugins>...</plugins>
<plugin> 单个插件。比如 Maven 编译器插件、打包插件等。 <plugin>...</plugin>

例子:指定 Java 版本

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.10.1</version>
      <configuration>
        <source>17</source>
        <target>17</target>
      </configuration>
    </plugin>
  </plugins>
</build>

其他常见的标签

标签作用示例
<properties>定义一些可以重复使用的属性,比如 Java 版本号、编码格式。<properties><java.version>17</java.version></properties>
<repositories>指定 Maven 仓库地址(如果用私服)。<repositories>…</repositories>
<profiles>多环境配置,比如开发版、生产版不同配置。<profiles>…</profiles>

常见配置举例

<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>springboot-demo</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <name>springboot-demo</name>
  <description>Spring Boot 后端项目模板</description>

  <!-- 父工程,管理 Spring Boot 依赖版本 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.2</version> <!-- 根据你的 Spring Boot 版本选择 -->
    <relativePath/>
  </parent>

  <!-- 统一配置 -->
  <properties>
    <java.version>17</java.version> <!-- Java 17 -->
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <!-- 项目依赖 -->
  <dependencies>
    <!-- Spring Boot 核心 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Security -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <!-- Spring Data JPA -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- MySQL 驱动 -->
    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <scope>runtime</scope>
    </dependency>

    <!-- JWT -->
    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>
      <version>0.9.1</version>
    </dependency>

    <!-- Lombok -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>

    <!-- 测试 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- 构建配置 -->
  <build>
    <plugins>
      <!-- 编译 Java 版本 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
        </configuration>
      </plugin>

      <!-- Spring Boot Maven 插件:用于打包 jar -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>