Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

官网:http://maven.apache.org/

Maven 作用:

标准化的项目结构

标准化的构建流程

方便的依赖管理

Maven 模型:

image-20220820104317462

仓库分类:

本地仓库:自己计算机上的一个目录

中央仓库:由Maven团队维护的全球唯一的

仓库地址:https://repo1.maven.org/maven2/

远程仓库(私服):一般由公司团队搭建的私有仓库

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

  • 如果有,则在项目直接引用;
  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。

还可以搭建远程仓库,将来jar包的查找顺序则变为:

本地仓库-> 远程仓库->中央仓库

image-20220820104635345

Maven 基本使用

compile :编译

clean:清理

test:测试

package:打包

install:安装

生命周期:

image-20220820104748683

validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。

initialize(初始化) 初始化构建状态,比如设置属性值。

generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。

process-sources(处理源代码) 处理源代码,比如说,过滤任意值。

generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。

process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。

compile(编译) 编译项目的源代码。

process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。

process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。

generate-test-resources(生成测试资源文件) 为测试创建资源文件。

process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。

test-compile(编译测试源码) 编译测试源代码到测试目标目录.

process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。

test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。

prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。

package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。

pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。

integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。

post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。

verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。

install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。

deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。

image-20220820104932184