Maven生命周期
构建流程
Maven内置了三个构建生命周期:default、clean 和 site。生命default周期处理您的项目部署,clean生命周期处理项目清理,而site生命周期处理项目网站的创建。
LifeCycle和Phase
构建生命周期由阶段组成,这些构建生命周期中的每一个都由不同的构建阶段列表定义,其中构建阶段代表生命周期中的一个阶段。
default生命周期默认有以下阶段
- validate- 验证项目是正确的,所有必要的信息都可用
- compile- 编译项目的源代码
- test- 使用合适的单元测试框架测试编译后的源代码。这些测试不应要求打包或部署代码
- package- 获取编译后的代码并将其打包为可分发的格式,例如 JAR。
- verify- 对集成测试的结果进行任何检查以确保满足质量标准
- install- 将包安装到本地存储库中,以在本地用作其他项目的依赖项
- deploy- 在构建环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享。
实际开发过程中,经常使用的命令有:
mvn clean:清理所有生成的class和jar;
mvn clean compile:先清理,再执行到compile;
mvn clean test:先清理,再执行到test,因为执行test前必须执行compile,所以这里不必指定compile;
mvn clean package:先清理,再执行到package。
goal
每个包都包含一个绑定到特定阶段的目标列表。例如,jar打包会将以下目标绑定到默认生命周期的构建阶段。
Plugins
将goal添加到阶段的方法是在项目中配置插件。
使用display插件,触发其绑定的goal(display:time)运行在process-test-resources阶段
<plugin><groupId>com.mycompany.example</groupId><artifactId>display-maven-plugin</artifactId><version>1.0</version><executions><execution><phase>process-test-resources</phase><goals><goal>time</goal></goals></execution></executions></plugin>