POM 是 Maven 中最重要的概念之一,它描述了一个 Maven 项目的基本信息和依赖关系。简单来说,POM 就是一个 XML 文件,其中包含了以下内容:
1、数学中的坐标
使用 x、y、z 三个『向量』作为空间的坐标系,可以在『空间』中唯一的定位到一个『点』。
2、Maven中的坐标
2.1、量说明
使用三个『向量』在『Maven的仓库』中唯一的定位到一个『jar』包。
2.2、三个向量的取值方式
举例:
3、坐标和仓库中 jar 包的存储路径之间的对应关系
坐标:
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>2.5version>
上面坐标对应的 jar 包在 Maven 本地仓库中的位置:
Maven本地仓库根目录\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar
首先,确保你已经安装了 Maven,并且设置了 MAVEN_HOME 环境变量。接下来,你可以通过 Maven 命令行工具来创建一个新的项目:
mvn archetype:generate -DgroupId=com.company.project -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这个命令会创建一个名为 my-project 的新项目,并使用 maven-archetype-quickstart 模板来生成初始的 POM 文件。
在创建一个 Maven 项目时,Maven 会自动生成一个初始的 POM 文件。POM 文件结构如下:
<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.0modelVersion>
<groupId>com.company.projectgroupId>
<artifactId>my-projectartifactId>
<packaging>jarpackaging>
<version>1.0-SNAPSHOTversion>
<name>my-projectname>
<url>http://maven.apache.orgurl>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>3.8.1version>
<scope>testscope>
dependency>
dependencies>
project>
让我们逐一介绍这个文件中的每个部分:
这个元素指定了 POM 文件所使用的模型版本,目前使用的是 4.0.0。
这个元素指定了项目的组织 ID,通常是公司名称或组织名称。
这个元素指定了项目的唯一标识符,通常是项目名称。
这个元素指定了项目的版本号,格式为 MAJOR.MINOR.PATCH。
这个元素包含了该项目所依赖的其他库或框架。每个依赖都必须包含 groupId、artifactId 和 version 等元素。
这个元素包含了构建和打包项目时所需要的配置信息。其中,plugins 元素用于指定需要使用的插件。
在 Maven 中,我们可以通过在 POM 文件中添加 dependencies 元素来定义项目的依赖关系。
要在 Maven 项目中添加依赖,我们需要做以下几个步骤:
例如,如果我们想要在项目中添加 Spring Core 库作为依赖,我们可以在 POM 文件中添加以下内容:
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>5.3.0version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webartifactId>
<version>5.3.0version>
dependency>
dependencies>
这个例子中,我们添加了 Spring Core 和 Spring Web 两个库作为项目的依赖关系。
六、依赖范围
在 Maven 中,每个依赖都有一个默认的范围,即 compile。这意味着该依赖将被编译到项目中,并在运行时可用。除此之外,还有以下几种范围:
要指定依赖的范围,我们可以在 dependency 元素中添加 scope 元素。例如,如果我们想要将 junit 库作为测试依赖,可以添加以下内容:
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
<scope>testscope>
dependency>
dependencies>