Maven pom.xml 文件讲解


Maven Logo

pom.xml 介绍

在Maven中,pom.xml 文件是一个 Project 的核心文件,它被称为项目对象模型(Project Object Model,简称POM)文件。该文件包含了构建 Project 所需的所有信息和配置。当执行 Maven 命令时,Maven会在当前目录查找到 pom.xml 文件,获取所需的配置信息。

pom.xml 中指定的一些配置包括项目依赖、可执行的插件、构建配置文件等。其他信息,如项目版本、描述、开发人员、邮件列表等也可以在这里指定。

pom.xml 结构

以下内容讲述 pom.xml 的结构。其中,<project><modelVersion><groupId><artifactId> ,和 <version> 为 pom.xml 必需的元素。

<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/maven-v4_0_0.xsd">  
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.mycompany.app</groupId>
	<artifactId>my-app</artifactId>
	<version>1</version>
</project>

<project>

(必须)
在 pom.xml 文件中,<project> 是一个根元素,它定义了Maven Project 的基本结构和配置。

<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/maven-v4_0_0.xsd">  
</project>

其中

  1. xmlns (XML Namespace) 声明一个默认的命名空间。在 pom.xml 文件中,它通常指向 Maven Project 对象模型的命名空间,值为 “http://maven.apache.org/POM/4.0.0” 。它用于标识文件中使用的元素属于哪个 XML 命名空间。这有助于避免不同XML文档中可能出现的元素名称冲突。
  2. xmlns:xsi (XML Schema Instance) 声明了XML Schema实例的命名空间,值为 “http://www.w3.org/2001/XMLSchema-instance” 。这个命名空间包含了一些特殊的属性,用于与XML Schema(一个用于定义XML文档结构和内容的标准)相关的功能。主要用于引入一些特定的属性,如 xsi:schemaLocation ,这些属性与 XML 验证和命名空间相关。
  3. xsi:schemaLocation 提供了XML文档所依据的XML Schema定义的位置。这个属性通常包含两部分:命名空间的URL,值为 “http://maven.apache.org/POM/4.0.0” ,和该命名空间对应的 Schema 文件的URL,值为 “http://maven.apache.org/maven-v4_0_0.xsd” 。它指导XML解析器如何验证文档的结构是否符合定义的Schema。

<modelVersion>

(必须)
<modelVersion> 位于根元素 <project> 中,指的是POM模型的版本。这个标签指明了该 POM 文件遵循的 Maven 对象模型版本。它是 pom.xml 文件中的一个必需元素,因为它帮助Maven解析器确定应该使用哪个版本的对象模型来解释POM文件。一般写为 4.0.0

<modelVersion>4.0.0</modelVersion>

<groupId><artifactId><version>

(必须)
在 Maven 的 pom.xml 文件中,<groupId><artifactId><version> 是三个核心元素,它们共同构成了 Project 的唯一标识符,称为坐标(Coordinates)。这些坐标用于在Maven仓库中唯一定位和区分 Project 或依赖项。

<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
  1. <groupId> 定义了 Project 所属的组织或组。它通常是基于 Project 所属组织的域名的反转形式,以确保全球唯一性。它也有助于维护 Project 间的层次结构。
  2. <artifactId> 是 Project 的唯一基本标识符。它是 Project 的名称。用于在同一 groupId 下区分不同的 Project 或模块。
  3. <version> 标识 Project 的特定版本,有助于跟踪 Project 的演变,管理依赖,并确保构建和部署的一致性。这对于版本控制和管理 Project 的不同迭代至关重要。

文档将持续更新…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值