news 2026/7/9 7:36:59

Maven POM 标签说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Maven POM 标签说明

Maven POM 标签完整参考手册


目录

  • 一、根标签
  • 二、项目基本信息
  • 三、父 POM 继承
  • 四、属性配置
  • 五、依赖管理
  • 六、模块管理
  • 七、构建配置
  • 八、分发管理
  • 九、仓库配置
  • 十、常用插件配置示例

一、根标签

标签说明示例
<project>POM 文件的根元素,所有配置都包裹在里面<project xmlns="...">
<modelVersion>POM 模型的版本,Maven 2/3 固定为 4.0.0<modelVersion>4.0.0</modelVersion>

二、项目基本信息

标签说明示例
<groupId>项目所属的组织/公司 ID,通常使用反转的域名<groupId>net.iuyy.agent</groupId>
<artifactId>项目的唯一标识符,也是构建产物的名称<artifactId>agent-core</artifactId>
<version>项目版本号,SNAPSHOT 表示快照版本<version>1.0-SNAPSHOT</version>
<packaging>打包方式,可选:pomjarwarearmaven-plugin<packaging>jar</packaging>
<name>项目的显示名称(可选)<name>Agent Core</name>
<description>项目描述(可选)<description>核心代理模块</description>
<url>项目主页 URL(可选)<url>http://www.iuyy.net</url>

三、父 POM 继承

标签说明示例
<parent>定义父 POM,继承其配置<parent>...</parent>
<parent>/<groupId>父项目的 groupId<groupId>net.iuyy.agent</groupId>
<parent>/<artifactId>父项目的 artifactId<artifactId>agent-platform</artifactId>
<parent>/<version>父项目的版本号<version>1.0</version>
<parent>/<relativePath>父 POM 的相对路径,默认../pom.xml,空值表示从仓库查找<relativePath>../pom.xml</relativePath>
<parent>/<relativePath/>空标签表示不从本地查找,直接去仓库<relativePath/>

四、属性配置

标签说明示例
<properties>定义可复用的属性变量<properties>...</properties>
<java.version>自定义属性,在 POM 中用${java.version}引用<java.version>17</java.version>
<project.build.sourceEncoding>源码编码<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>报告输出编码<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>编译源码的 Java 版本<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>编译目标 Java 版本<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.encoding>编译编码<maven.compiler.encoding>UTF-8</maven.compiler.encoding>

五、依赖管理

5.1<dependencies>- 直接依赖

标签说明示例
<dependencies>所有依赖的根容器<dependencies>...</dependencies>
<dependency>单个依赖项<dependency>...</dependency>
<dependency>/<groupId>依赖的组织 ID<groupId>org.springframework.boot</groupId>
<dependency>/<artifactId>依赖的构件 ID<artifactId>spring-boot-starter-web</artifactId>
<dependency>/<version>依赖的版本号<version>3.5.10</version>
<dependency>/<type>依赖的类型,默认jar<type>jar</type>
<dependency>/<scope>依赖作用域<scope>compile</scope>
<dependency>/<optional>是否可选依赖(不传递)<optional>true</optional>
<dependency>/<classifier>分类器,用于区分相同版本的不同构建<classifier>exec</classifier>
<dependency>/<exclusions>排除传递性依赖<exclusions>...</exclusions>
<dependency>/<exclusions>/<exclusion>单个排除项<exclusion>...</exclusion>

5.2<dependencyManagement>- 依赖版本管理

标签说明示例
<dependencyManagement>管理依赖版本,子模块继承但不会自动引入<dependencyManagement>...</dependencyManagement>
<dependencyManagement>/<dependencies><dependencies><dependencies>

5.3 Scope 作用域

Scope说明生效阶段
compile默认,所有阶段都可用编译、测试、运行
provided由 JDK 或容器提供,打包时不包含编译、测试
runtime运行时需要,编译时不需要测试、运行
test仅测试阶段需要测试
system系统本地路径,不推荐使用编译、测试
import仅用于 dependencyManagement,导入 BOM版本管理

六、模块管理(多模块项目)

标签说明示例
<modules>子模块列表容器<modules>...</modules>
<module>子模块的相对路径(目录名)<module>agent-core</module>

七、构建配置

7.1<build>基本结构

标签说明示例
<build>构建配置的根容器<build>...</build>
<build>/<finalName>构建产物的最终名称<finalName>agent-web</finalName>
<build>/<directory>构建输出目录,默认target<directory>target</directory>
<build>/<sourceDirectory>源码目录,默认src/main/java<sourceDirectory>src/main/java</sourceDirectory>
<build>/<testSourceDirectory>测试源码目录<testSourceDirectory>src/test/java</testSourceDirectory>
<build>/<outputDirectory>编译输出目录<outputDirectory>target/classes</outputDirectory>
<build>/<testOutputDirectory>测试编译输出目录<testOutputDirectory>target/test-classes</testOutputDirectory>

7.2<resources>- 资源文件

标签说明示例
<resources>资源列表容器<resources>...</resources>
<resource>单个资源配置<resource>...</resource>
<resource>/<directory>资源目录<directory>src/main/resources</directory>
<resource>/<includes>包含的文件模式<includes>...</includes>
<resource>/<excludes>排除的文件模式<excludes>...</excludes>
<resource>/<filtering>是否启用资源过滤(替换变量)<filtering>true</filtering>

7.3<plugins>- 插件配置

标签说明示例
<plugins>插件列表容器<plugins>...</plugins>
<plugin>单个插件配置<plugin>...</plugin>
<plugin>/<groupId>插件组织 ID<groupId>org.springframework.boot</groupId>
<plugin>/<artifactId>插件构件 ID<artifactId>spring-boot-maven-plugin</artifactId>
<plugin>/<version>插件版本<version>3.5.10</version>
<plugin>/<extensions>是否扩展 Maven 核心功能<extensions>true</extensions>
<plugin>/<configuration>插件配置参数<configuration>...</configuration>
<plugin>/<executions>插件执行目标<executions>...</executions>
<plugin>/<executions>/<execution>单个执行配置<execution>...</execution>
<execution>/<id>执行 ID<id>repackage</id>
<execution>/<goals>执行的目标列表<goals>...</goals>
<execution>/<goal>单个目标<goal>repackage</goal>
<execution>/<phase>绑定的生命周期阶段<phase>package</phase>
<execution>/<configuration>该执行的特定配置<configuration>...</configuration>

7.4<pluginManagement>- 插件版本管理

标签说明示例
<pluginManagement>管理插件版本,子模块继承但不会自动执行<pluginManagement>...</pluginManagement>
<pluginManagement>/<plugins><plugins><plugins>

八、分发管理

标签说明示例
<distributionManagement>分发配置<distributionManagement>...</distributionManagement>
<repository>发布仓库<repository>...</repository>
<snapshotRepository>快照仓库<snapshotRepository>...</snapshotRepository>
<site>站点部署配置<site>...</site>

九、仓库配置

标签说明示例
<repositories>远程仓库列表<repositories>...</repositories>
<repository>单个仓库<repository>...</repository>
<repository>/<id>仓库 ID<id>aliyun</id>
<repository>/<name>仓库名称<name>Aliyun Maven</name>
<repository>/<url>仓库地址<url>https://maven.aliyun.com/...</url>
<repository>/<snapshots>快照版本策略<snapshots>...</snapshots>
<repository>/<releases>正式版本策略<releases>...</releases>

十、常用插件配置示例

10.1 Spring Boot Maven Plugin

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><skip>false</skip><!-- 是否跳过 repackage --><mainClass>com.example.Application</mainClass><!-- 启动类 --><classifier>exec</classifier><!-- 生成带后缀的 jar --><jvmArguments><!-- JVM 参数 --><jvmArgument>-Dfile.encoding=UTF-8</jvmArgument></jvmArguments><systemPropertyVariables><!-- 系统属性 --><file.encoding>UTF-8</file.encoding></systemPropertyVariables><arguments><!-- 应用参数 --><argument>--server.port=8080</argument></arguments><excludes><!-- 排除依赖 --><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration><executions><execution><goals><goal>repackage</goal><!-- 重打包目标 --></goals></execution></executions></plugin>

10.2 Maven Compiler Plugin

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><!-- 源码版本 --><target>17</target><!-- 目标版本 --><encoding>UTF-8</encoding><!-- 编码 --><compilerArgs><!-- 额外参数 --><arg>-parameters</arg><!-- 保留参数名 --><arg>-Xlint:unchecked</arg><!-- 警告级别 --></compilerArgs></configuration></plugin>

10.3 Maven Surefire Plugin(测试)

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skipTests>true</skipTests><!-- 跳过测试 --><includes><!-- 包含的测试类 --><include>**/*Test.java</include></includes><excludes><!-- 排除的测试类 --><exclude>**/*IntegrationTest.java</exclude></excludes><forkCount>4</forkCount><!-- 并行测试数 --><reuseForks>true</reuseForks><!-- 复用 fork --></configuration></plugin>

10.4 Maven Jar Plugin

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><excludes><!-- 排除文件 --><exclude>**/application-dev.yml</exclude></excludes><archive><manifest><addClasspath>true</addClasspath><!-- 添加 Classpath --><mainClass>com.example.Application</mainClass><!-- 主类 --></manifest><manifestEntries><!-- 自定义 Manifest --><Implementation-Version>${project.version}</Implementation-Version></manifestEntries></archive></configuration></plugin>

10.5 Maven Source Plugin

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><executions><execution><id>attach-sources</id><phase>package</phase><goals><goal>jar-no-fork</goal><!-- 生成源码 jar --></goals></execution></executions></plugin>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 7:35:42

从单兵到团队:用AI智能体协作框架构建高效自动化工作流

&#x1f680; 30款热门AI模型一站整合&#xff0c;DeepSeek/GLM/Qwen 随心用&#xff0c;限时 5 折。 &#x1f449; 点击领海量免费额度 最近在技术圈里&#xff0c;一个来自斯坦福的“黑科技”项目被频繁提及&#xff0c;它能让 Claude 这类大语言模型瞬间“进化”&#…

作者头像 李华
网站建设 2026/7/9 7:33:05

SketchUp STL插件:3D打印工作流的终极解决方案

SketchUp STL插件&#xff1a;3D打印工作流的终极解决方案 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 你是否曾经在Sketc…

作者头像 李华
网站建设 2026/7/9 7:28:14

空号检测能力综合评估:2026主流方案数据源覆盖度、识别准确率与实时响应速度梯队解读

在企业营销成本持续攀升的当下&#xff0c;每一通无效电话、每一条沉没短信都在无声吞噬着预算。据统计&#xff0c;国内企业短信营销中约有三成号码已处于停机或空号状态&#xff0c;这意味着近三分之一的推广费用在拨出瞬间便化为乌有。面对这一痛点&#xff0c;越来越多的企…

作者头像 李华
网站建设 2026/7/9 7:25:23

怎样高效实现微信群消息智能转发:自动化同步完整指南

怎样高效实现微信群消息智能转发&#xff1a;自动化同步完整指南 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 还在为手动转发微信群消息而烦恼吗&#xff1f;wechat-forwarding是一款开源…

作者头像 李华