5.1 项目阶段清单
最后,我们进行了项目的组装。然后你会有点惊讶。好吧,或者强烈地,事实证明。Maven 已经修改了构建项目的方法。现在您将对此深信不疑。
项目的整个组装分为几个阶段,我将在下表中进行描述:
命令 | 阶段 | |
---|---|---|
1个 | 证实 | 检查有关项目的元信息的正确性 |
2个 | 编译 | 编译源 |
3个 | 测试 | 运行上一步的类测试 |
4个 | 包裹 | 将编译后的类打包到一个新的工件中:jar、war、zip、... |
5个 | 核实 | 检查工件的正确性和质量要求的满足程度 |
6个 | 安装 | 将工件放入本地存储库 |
7 | 部署 | 将工件上传到生产服务器或远程存储库 |
同时, 步骤顺序清晰。如果您告诉 Maven 运行 package 命令,它将首先运行验证、编译、测试阶段,然后才进行打包
原则上,这里没有什么新东西,除了质量控制有单独的阶段:验证、测试、验证。以及部署程序集的两个阶段——安装和部署。
要启动特定阶段,编写maven 阶段命令就足够了。例如,要构建,您需要运行maven package命令。ETC。
Intellij IDEA 非常擅长处理这些阶段,它在右侧有一个特殊的菜单用于这些目的:

在这里,除了众所周知的阶段之外,IDEA 还显示了另外 2 个命令:clean和site。clean用于彻底清除目标文件夹,site可以创建项目文档。
5.2 构建项目
如果要编译项目,则需要运行编译阶段。这可以使用命令行:mvn compile或通过 IDEA 界面点击编译项来完成。
之后,Maven 将开始构建项目,您将看到类似这样的构建过程日志:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------
如果出现问题,日志将如下所示:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
日志中会有很多有用的信息,久而久之你就会学会理解和欣赏它。
5.3 工作循环
所有 Maven 命令都分为三组 - 生命周期。它们被称为生命周期,因为它们指定了在构建或特定生命周期期间运行的阶段的顺序,因为并非所有 Maven 活动都是构建。
生命周期分为三种:
- 干净的;
- 默认;
- 地点。
他们每个人都有自己的相序。Clean 具有最短的:
- 预清洁;
- 干净的;
- 发布干净。
添加了隐藏的额外预清理和后清理阶段,以便可以使清理场景更加灵活。
然后是站点生命周期,如您所知,它旨在自动生成项目文档。它由四个阶段组成:
- 现场前
- 地点;
- 后站;
- 站点部署。
标准生命周期可以通过使用Maven 插件的功能得到增强。我们稍后再谈这个,因为这是一个非常有趣的话题,值得单独讲一讲。
默认脚本具有最长的阶段列表:
- 证实;
- 生成源;
- 过程来源;
- 生成资源;
- 过程资源;
- 编译;
- 过程测试源;
- 处理测试资源;
- 测试编译;
- 测试;
- 包裹;
- 安装;
- 部署。
有您已经知道的所有相同阶段,但添加了一些可选的阶段。
首先,大型项目中的一个流行阶段是generate-sources:例如,基于 XML 生成 Java 代码。还有一对process-sources,它对这段代码做了一些事情。
其次,资源的生成是generate-resources及其配对的process resources方法。在大型项目中,您经常会看到一些与这些阶段相关的活动。
最后,测试。它具有三个额外的可选阶段,有助于尽可能灵活地运行测试阶段:process-test-sources、process-test-resources、test-compile。
GO TO FULL VERSION