我已经在很多地方阅读了有关 maven 的清洁和站点生命周期的信息,但无法理解它是如何工作的。请通过一些示例向我解释 Maven 的清洁生命周期流程。它与构建有何不同。在构建开始之前,清理完成了,对吧?清洁前后阶段会发生什么。
3 回答
清洁生命周期包含以下生命周期阶段:
- 预清洁
- 干净的
- 清洁后
如果调用mvn clean
会贯穿以下生命周期阶段:
pre-clean, clean
如果您将调用mvn post-clean
以下生命周期阶段,则将贯穿:
pre-clean, clean, post-clean
默认情况下,在 clean lifeclyce 中,只有 maven-clean-plugin 绑定到通常会删除目标文件夹的 clean 阶段。通常没有任何约束post-clean
站点等其他生命周期包含以下阶段:
pre-site, site, post-site, site-deploy
而你通常打电话mvn site
或有时mvn site-deploy
。
所谓的default
生命周期包含更多阶段(仅摘录):
验证,...,编译,测试,..,打包,...,安装,部署
每个阶段都绑定了不同的插件,这些插件可以完成他们的工作以获得您想要的结果。
在 pre-clean 或 post-clean 中默认不会发生任何事情,但如果您愿意,您可以自己使用它们。例如,如果您想为历史目的保留过去的构建,那么您可以在预清理阶段运行备份。或者您可以使用 post-clean 进行一些额外的清理,例如重置本地数据库或 LDAP 目录。
在基于 Maven 的项目中,许多缓存输出存在于您的“目标”文件夹中。当您要构建项目以进行部署时,您必须确保清除所有缓存的输出,以便始终获得最新的部署。
例如:如果您重命名一个类,之前编译的版本将保留在 target/classes 中,直到您运行 clean。这可能完全无害,但如果它被类路径扫描等自动检测到,它可能会导致问题。