Mavan最主要的命令:mvn clean compile、mvn clean test、mvn clean package、mvn clean install。执行test之前,先执行compile、执行package之前先执行test、执行install之前先执行package,这就涉及到一个概念:Maven生命周期。
compile-test-package-install
编译、测试、打包、部署
在Maven中有三套独立的生命周期:
- 1、Clean Lifecycle(清理):在进行真正的构建之前进行一些清理工作
- 2、Default Lifecycle(默认)):构建的核心部分,编译、测试、打包、部署
- 这一生命周期里主要包括这些事(不完整):
-
- 验证(validate) - 验证项目是否正确,所有必要的信息可用
- 编译(compile) - 编译项目的源代码
- 测试(test) - 使用合适的单元测试框架测试编译的源代码。这些测试不应该要求代码被打包或部署
- 打包(package) - 采用编译的代码,并以其可分配格式(如JAR)进行打包。
- 验证(verify) - 对集成测试的结果执行任何检查,以确保满足质量标准
- 安装(install) - 将软件包安装到本地存储库中,用作本地其他项目的依赖项
- 部署(deploy) - 在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享
-
- 任何一个阶段的时候,它前面的所有阶段都会被运行
,这也就是为什么我们运行mvn clean install的时候,代码会被编译、测试、打包。
此外,Maven的插件机制是完全依赖Maven生命周期的,因此理解生命周期至关重要。
Maven的生命周期是抽象的,实际需要插件来完成任务,这一过程是通过将插件的目标(goal)绑定到生命周期的具体阶段(phase)来完成的。如:将maven-compiler-plugin插件的compile目标绑定到default生命周期的compile阶段,完成项目的源代码编译:
- 任何一个阶段的时候,它前面的所有阶段都会被运行
- 3、Site Lifecycle(站点):生成项目报告、生成站点、发布站点