Maven的pom.xml文件有哪些常用标签需要配置

来源:AI智能体作者:越南程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《Maven的pom.xml文件有哪些常用标签需要配置》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Maven的pom.xml文件有哪些常用标签需要配置》有用,将其分享出去将是对创作者最好的鼓励。

Maven的pom.xml文件是项目的核心配置载体,所有和项目构建、依赖、插件相关的规则都需要在该文件中定义。合理的标签配置能够避免依赖冲突、简化构建流程,是Maven项目开发的基础环节。

Maven的pom.xml文件有哪些常用标签需要配置

pom.xml的基础结构标签

pom.xml的根标签是<project>,所有其他配置都嵌套在该标签内部,基础结构包含项目坐标、版本管理等核心信息。

项目坐标相关标签

项目坐标是Maven定位项目的唯一标识,包含三个核心标签:

  • <groupId>:定义项目所属的组织或公司,通常采用反向域名格式,比如com.example
  • <artifactId>:定义项目的唯一标识,一般是项目名
  • <version>:定义项目的版本号,比如1.0.0-SNAPSHOT表示快照版本

以下是一个基础的项目坐标配置示例:

<?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.ipipp</groupId>
    <artifactId>demo-project</artifactId>
    <version>1.0.0</version>
    <!-- 项目打包类型,默认是jar,可选war、pom等 -->
    <packaging>jar</packaging>
</project>

依赖管理相关标签

依赖管理是pom.xml最常用的功能,通过<dependencies>标签可以引入项目所需的第三方库。

单个依赖的配置

每个依赖都放在<dependency>标签中,除了基础的坐标标签外,还可以配置<scope>来指定依赖的作用范围:

  • compile:默认范围,编译、测试、运行阶段都有效
  • test:仅测试阶段有效,比如JUnit
  • provided:编译和测试阶段有效,运行阶段由容器提供,比如Servlet API
  • runtime:测试和运行阶段有效,比如JDBC驱动

配置Spring Core依赖的示例:

<dependencies>
    <!-- Spring Core依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.3.20</version>
        <scope>compile</scope>
    </dependency>
    <!-- 测试依赖 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

依赖版本统一管理

当项目中有多个依赖使用相同的版本号时,可以通过<properties>标签定义版本常量,避免重复配置和版本不一致问题。

<properties>
    <spring.version>5.3.20</spring.version>
    <junit.version>4.13.2</junit.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

构建与插件配置标签

Maven的构建过程可以通过<build>标签下的插件进行自定义,常见的比如编译插件、打包插件。

编译插件配置

默认的Maven编译插件使用的是JDK1.5版本,如果需要指定更高的JDK版本,需要配置maven-compiler-plugin插件。

<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>

资源文件配置

如果项目的资源文件(比如properties、xml文件)放在非默认的src/main/resources目录下,可以通过<resources>标签指定资源目录。

<build>
    <resources>
        <resource>
            <!-- 资源文件目录 -->
            <directory>src/main/config</directory>
            <!-- 是否替换资源文件中的占位符 -->
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

多模块项目配置标签

如果项目是聚合工程,父项目的pom.xml需要配置<modules>标签指定子模块,同时打包类型需要设置为pom。

<!-- 父项目pom.xml -->
<groupId>com.ipipp</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>

<modules>
    <module>common-module</module>
    <module>service-module</module>
    <module>web-module</module>
</modules>

子模块中需要配置<parent>标签指定父项目坐标,这样就能继承父项目的依赖和插件配置。

<!-- 子模块pom.xml -->
<parent>
    <groupId>com.ipipp</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0.0</version>
</parent>

<artifactId>common-module</artifactId>
<version>1.0.0</version>

Mavenpom.xml依赖管理插件配置项目构建修改时间:2026-06-28 02:51:40

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。