Maven相关的概念

Maven是项目进行模型抽象,充分运用的面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

项目有阶段: 编译项目 、项目测试、 运行项目 、 清除项目的缓存 、 发布项目 、 打包安装....

: Maven是由Apache开发的一个工具。用来管理java项目(依赖(jar)管理, 项目构建, 分模块开发 ).

Maven的作用

  • 依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标(jar包的唯一标识),自动从maven仓库中去下载到工程中。

  • 项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

  • maven对工程分模块构建,提高开发效率。 (后面Maven高级会涉及)

  • Maven仓库和坐标

  • 仓库其实就是存放 jar包 的位置 , 仓库其实就是一个文件夹!
  • 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
  • 知识点-Lombok的常用注解

  • @Data

  • @Getter/@Setter

  • @ToString

  • @NoArgsConstructor, @AllArgsConstructor

  • @Data

    • 用在类上面的 , 生成set,get, toString, hashCode,canEqual、equals方法

  • @Getter

    • 用在字段, 生成get方法

  • @Setter

    • 用在字段, 生成set方法

  • @ToString

    • 用在类上面的 生成toString方法

  • @xxxConstructor

    • 用在类上面的 生成构造方法 (只能生成无参和全参的构造方法)

优点:

能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率

让代码变得简洁,不用过多的去关注相应的方法

缺点:

  • 不支持多种参数构造器的重载 , 要不就是无参,要不就是全参 , 如果希望做成只有一个参数、或者几个参数的构造函数,需要自己手动添加。

  • 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读代码的舒适度

    • 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

### 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、付费专栏及课程。

余额充值