Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
Maven环境配置
Maven基于Java,所以首先要安装JDK。
检查Java安装:
| 操作系统 | 任务 | 命令 |
|---|---|---|
| Windows | 打开命令控制行 | c:> java -version |
| Linux | 打开命令终端 | # java -version |
| Mac | 打开终端 | $ java -version |
安装好Maven后,设置环境变量(添加环境变量 MAVEN_HOME)
Maven POM
POM(项目对象模型),是一个xml文件。包含项目基本信息,用于描述项目如何构建,声明项目依赖等等。
所有 POM 文件都需要 project(工程的根标签) 元素和三个必需字段:groupId,artifactId,version。
Maven构建配置文件
| 阶段 | 处理 | 描述 |
|---|---|---|
| 验证validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
| 编译compile | 执行编译 | 源代码编译在此阶段完成 |
| 测试Test | 测试 | 使用适当的单元测试框架(例如JUnit)运行测试 |
| 包装package | 打包 | 将编译后的代码打包成可分发的格式,例如 JAR 或 WAR |
| 检查verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
| 安装install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
| 部署deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
为了完成 default 生命周期,这些阶段(包括其他未在上面罗列的生命周期阶段)将被按顺序地执行。
Maven 有以下三个标准的生命周期:
1、Clean 生命周期:
- clean:删除目标目录中的编译输出文件。这通常是在构建之前执行的,以确保项目从一个干净的状态开始。
2、Default 生命周期(也称为 Build 生命周期):
- validate:验证项目的正确性,例如检查项目的版本是否正确。
- compile:编译项目的源代码。
- test:运行项目的单元测试。
- package:将编译后的代码打包成可分发的格式,例如 JAR 或 WAR。
- verify:对项目进行额外的检查以确保质量。
- install:将项目的构建结果安装到本地 Maven 仓库中,以供其他项目使用。
- deploy:将项目的构建结果复制到远程仓库,以供其他开发人员或团队使用。
3、Site 生命周期:
- site:生成项目文档和站点信息。
- deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。
Maven仓库
Maven仓库有三种类型:本地(local)、中央(central)、远程(remote)
Maven 本地仓库默认被创建在 %USER_HOME% 目录下。要修改默认位置,在 %M2_HOME%\conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。
中央仓库:Maven Central (sonatype.com)
远程仓库:Maven在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven提供了远程仓库(开发人员自己定制的,包含了所需要的代码库或者其他工程中用到的 jar 文件)。
Maven依赖搜索顺序:先在本地仓库中搜索,找不到则在中央仓库中找。中央仓库中找不到,若远程仓库没被设置,将简单地停滞并抛出错误。若已设置,则在远程仓库中搜索依赖的文件。如果找到了则下载到本地仓库中以备将来引用。否则 Maven 将停止处理并抛出错误。
Maven插件
常见插件列表
| 插件 | 描述 |
|---|---|
| clean | 构建之后清理目标文件 |
| compile | 编译Java源文件 |
| surefile | 运行 JUnit 单元测试。创建测试报告 |
| jar | 从当前工程中构建 JAR 文件 |
| war | 从当前工程中构建 WAR 文件 |
| javadoc | 为工程生成Javadoc |
Maven 构建 Java 项目
Maven使用原型archetype插件创建项目。我们将使用 maven-archetype-quickstart 插件创建一个简单的Java应用。
Maven项目模板
Maven 使用 archetype(原型) 来创建自定义的项目结构,形成 Maven 项目模板。
Maven 使用下面的命令来快速创建 java 项目:
mvn archetype:generate