Eclipse Maven清洁生命周期
我在很多地方都读过maven的clean和site生命周期,但无法理解它到底是如何工作的。 请举例说明Maven的清洁生命周期流程。 它与构建有什么不同。Eclipse Maven清洁生命周期,eclipse,maven,maven-clean-plugin,Eclipse,Maven,Maven Clean Plugin,我在很多地方都读过maven的clean和site生命周期,但无法理解它到底是如何工作的。 请举例说明Maven的清洁生命周期流程。 它与构建有什么不同。 和构建开始之前一样,清理工作已经完成,对吗? 在清理前和清理后阶段会发生什么。在基于Maven的项目中,许多缓存输出都存在于您的“目标”文件夹中。当您想要为部署构建项目时,必须确保清除所有缓存的输出,以便始终获得最新的部署信息 例如:如果重命名一个类,则先前编译的版本将保留在target/classes中,直到您运行clean。这可能完全无害
和构建开始之前一样,清理工作已经完成,对吗?
在清理前和清理后阶段会发生什么。在基于Maven的项目中,许多缓存输出都存在于您的“目标”文件夹中。当您想要为部署构建项目时,必须确保清除所有缓存的输出,以便始终获得最新的部署信息
例如:如果重命名一个类,则先前编译的版本将保留在target/classes中,直到您运行clean。这可能完全无害,但如果通过类路径扫描等自动检测到,则可能会导致问题。清洁生命周期包含以下内容:
- 预清洁
- 干净的
- 事后清理
mvn clean
,将运行以下生命周期阶段:
pre-clean, clean
pre-clean, clean, post-clean
如果您调用mvn post clean
,则将运行以下生命周期阶段:
pre-clean, clean
pre-clean, clean, post-clean
默认情况下,在clean lifeclyce中,只有maven clean插件绑定到clean阶段,该阶段通常删除目标文件夹。通常没有绑定到清理后的
其他生命周期(如站点)包含以下阶段:
pre-site, site, post-site, site-deploy
当您通常调用mvn站点
或有时调用mvn站点部署
时
所谓的default
生命周期包含更多的阶段(只有一个exerpt):
验证、编译、测试、打包、安装、部署
在每个阶段都绑定了不同的插件,这些插件完成它们的工作以获得您想要的结果。默认情况下,在预清理或后清理中不会发生任何事情,但如果您愿意,您可以自己使用它们。例如,如果您希望出于历史目的保留以前的生成,那么可以在预清理阶段运行备份。或者,您可以使用post clean进行一些额外的清理,例如重置本地数据库或LDAP目录。“在构建开始之前,清理已经完成,对不对”不,默认情况下不是这样,尽管运行mvn clean install
是很常见的。我发现post clean阶段对于重置本地数据库很有用。您只需调用“清理”进行定期清理,然后在连续集成等位置或需要重置测试数据时使用“清理后”即可。对于此类集成测试,请使用预集成测试,integration test
和post integration test
阶段更易于通过maven failsafe插件进行集成,可以使用junit jupiter或test ng等常用单元测试框架。我们的构建通常使用集成测试阶段进行Selenium场景测试。根据需要手动重置数据库仍然很有用。