1. Maven 的概念
1.1 什么是 Maven
-
定义:Maven 是一个跨平台的项目管理和理解工具,主要服务于基于 Java 平台的项目构建、依赖管理和项目信息管理。
-
理想项目构建的特征:
-
高度自动化
-
跨平台兼容
-
可重用的组件
-
标准化的流程
-
-
依赖:
-
定义:项目中需要用到的外部库或模块。
-
依赖管理的目的:自动下载和统一管理项目依赖,确保依赖的一致性和版本控制。
-
依赖关系示例:项目 A 依赖于 B 1.0 版本,B 又依赖于 C 3.0 版本。
-
-
项目信息:
-
包括项目名称、描述、开发人员信息、许可证信息等。
-
1.2 什么是依赖管理
-
管理第三方依赖包,能够连接互联网下载项目所需的第三方 JAR 包。
-
管理自己开发的模块,可以像引用第三方依赖一样引用自己项目的依赖包。
1.3 什么是项目构建
-
定义:项目构建是从编写源代码到编译、测试、运行、打包、部署的全过程。
-
传统项目构建方式:
-
在 IDE(如 IntelliJ IDEA)中编写源代码和配置文件。
-
编译源代码,使用 JUnit 进行单元测试。
-
将项目打包成 WAR 包,部署到 Tomcat 服务器中运行。
-
-
Maven 项目构建方式:
-
Maven 将项目构建过程标准化,每个阶段都可以用一个命令完成。
-
构建流程:清理 → 编译 → 测试 → 报告 → 打包 → 部署。
-
好处:可以通过命令完成项目构建,Maven 对每个构建阶段进行规范,有利于大型团队协作开发。
-
1.4 Maven 的应用场景
-
开发人员按照 Maven 标准的目录结构进行开发并提交代码。
-
在测试服务器上拉取 Java 源码,使用 Maven 的自动化项目构建完成项目的清理、编译、测试、打包和安装部署等。
1.5 为什么使用 Maven
-
IDE(如 Eclipse, IntelliJ IDEA):
-
手工操作较多,编译、测试、部署等工作独立,难以一步完成。
-
每个人的 IDE 配置不同,容易导致代码在不同环境中编译出错。
-
-
Ant:
-
没有约定的目录结构。
-
必须明确指定 Ant 的任务和执行时机,然后编译、打包。
-
没有生命周期概念,必须定义目标及其实现的任务序列。
-
没有集成依赖管理。
-
-
Maven:
-
拥有约定,知道代码的位置和存放路径。
-
拥有生命周期,例如执行
mvn install
就可以自动执行编译、测试、打包等构建过程。 -
只需要定义一个
pom.xml
文件,然后将源码放到默认目录,Maven 会处理其他事情。 -
拥有依赖管理,可以方便地管理项目依赖和版本。
-
1.6 Maven 模型
-
Maven 使用一个项目对象模型(POM)来描述项目信息和构建配置。
-
POM 文件定义了项目的基本信息、依赖、构建配置、插件等。
-
Maven 通过 POM 文件来管理项目的构建过程和依赖关系。