Maven的核心概念

Maven采用约定的目录结构,包括src/main/java和src/test/java等,用于存放源代码和测试代码。POM(ProjectObjectModel)是项目对象模型,通过pom.xml文件管理项目构建和依赖。坐标由groupId、artifactId和version组成,是资源的唯一标识。Maven通过坐标来管理项目的依赖,并进行编译、测试、打包和部署等操作。

Maven的核心概念

2.1、约定的目录结构

maven项目使用的是大多数人遵循的目录结构,叫做约定的目录结构。

一个maven项目是一个文件夹。比如项目叫做Hello

Hello 项目文件夹
		\src\
				\main 		 				叫做主程序目录(完成项目功能的代码和配置文件)
						\java					源代码(包和相关的类定义)
						\resource			配置文件
				\test							测试程序代码(开发人员自己写的测试代码)
						\java					测试代码(junit)
						\resource			测试程序需要的配置文件
		\pom.xml							maven的配置文件,核心文件

maven的使用方式:

  1. maven可以独立使用:创建项目,编译代码,测试程序,打包,部署等待。

  2. maven和idea一起使用,通过idea借助maven,实现编码,测试,打包等待。

2.2、pom文件

POM:Project Object Model 项目对象模型,maven把项目当做模型处理。操作这个模型就是操作项目。

maven通过pom.xml文件实现,项目的构建和依赖的管理。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 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/xsd/maven-4.0.0.xsd">
  <!--pom模型的版本,就是4.0.0-->
    <modelVersion>4.0.0</modelVersion>
  <!--坐标-->
    <groupId>org.example</groupId>
    <artifactId>Spring-mvc</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springmvc-01</module>
        <module>springmvc-02</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

2.3、坐标

坐标的组成是groupid、artifiactld、version。坐标概念来自数学。

坐标的作用:确定资源的,是资源的唯一标识。在maven中,每个资源都是坐标,坐标值是唯一的。简称gav

 <groupId>org.example</groupId>
 <artifactId>Spring-mvc</artifactId>
 <version>1.0-SNAPSHOT</version>

groupId:组织名称,代码,公司或单位的标识。这个值使用的公司域名的倒写。
artifactId:项目名称,如果groupId中有项目,此时当前的值就是子项目。项目名称是唯一的
verson:版本,项目的版本号,使用的数字,三位组成。例如 主版本号.次版本号.小版本号
				注意:版本号中有-SNAPSHOT,表示快照,不是稳定的版本。

项目中使用gav:

  1. 每个maven项目,都需要有一个自己的gav
  2. 管理依赖,需要使用其他的jar,也需要使用gav标识。
### Maven 核心概念模型的理解 Maven 是一个强大的项目管理工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。其核心概念模型主要围绕 **POM(Project Object Model,项目对象模型)** 展开,通过一系列相互关联的组件,实现了对项目的高效管理。 #### 1. **POM(项目对象模型)** POM 是 Maven核心概念,是一个以 `pom.xml` 文件形式存在的 XML 文档,位于项目的根目录中。它定义了项目的元数据、依赖关系、插件配置以及构建生命周期等信息。通过 POM,Maven 能够理解项目的结构并执行相应的构建操作。POM 不仅包含项目的基本信息,如项目名称、版本、开发者等,还包含了构建过程中所需的插件和目标 [^3]。 例如,一个简单的 `pom.xml` 文件结构如下: ```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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.nie</groupId> <artifactId>spring</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>spring</name> </project> ``` 该文件定义了项目的基本信息,如 `groupId`、`artifactId` 和 `version`,这些信息构成了项目的 **Maven 坐标**,用于唯一标识一个项目 [^2]。 #### 2. **依赖管理** Maven 的依赖管理功能允许开发者通过声明的方式管理项目所需的外部库(如 JAR 文件)。开发者只需在 `pom.xml` 文件中声明依赖项,Maven 会自动下载并管理这些依赖的版本,避免了手动管理依赖时可能出现的版本冲突问题 [^5]。 #### 3. **构建生命周期与插件** Maven 定义了一套清晰的构建生命周期,包括 `clean`、`compile`、`test`、`package`、`install` 和 `deploy` 等阶段。每个阶段都可以绑定特定的插件,用于执行相应的任务。例如,`compile` 阶段用于编译源代码,`test` 阶段用于运行单元测试,`package` 阶段用于生成可部署的包(如 JAR、WAR 文件) [^4]。 开发者可以通过简单的命令(如 `mvn clean install`)来触发整个构建流程,Maven 会自动执行所有相关的步骤,无需手动干预 [^1]。 #### 4. **项目继承与聚合** Maven 支持项目继承和聚合功能,允许开发者创建一个父项目,并在子项目中继承父项目的配置。这种机制可以减少重复配置,提高项目的可维护性。此外,聚合功能允许将多个项目组合成一个整体,便于统一管理和构建 [^3]。 #### 5. **标准化项目结构** Maven 提供了一套标准化的项目结构,确保所有 Maven 项目都遵循相同的目录布局。这种统一的结构使得开发者可以更容易地理解和维护项目,同时也简化了团队协作 [^5]。 #### 6. **仓库管理** Maven 使用本地仓库和远程仓库来存储和管理依赖项。本地仓库通常位于开发者的本地机器上,而远程仓库则可以是公司内部的私有仓库或公共仓库(如 Maven Central)。Maven 会自动从远程仓库下载所需的依赖项,并将其缓存到本地仓库中,以便后续使用 [^4]。 ### 总结 Maven核心概念模型围绕 POM 展开,通过依赖管理、构建生命周期、插件系统、项目继承与聚合等功能,提供了一种标准化、自动化的项目管理方式。这些核心概念相互关联,共同构成了 Maven 强大的项目管理能力,帮助开发者提高开发效率和项目质量 [^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值