Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse Maven清洁生命周期_Eclipse_Maven_Maven Clean Plugin - Fatal编程技术网

Eclipse Maven清洁生命周期

Eclipse Maven清洁生命周期,eclipse,maven,maven-clean-plugin,Eclipse,Maven,Maven Clean Plugin,我在很多地方都读过maven的clean和site生命周期,但无法理解它到底是如何工作的。 请举例说明Maven的清洁生命周期流程。 它与构建有什么不同。 和构建开始之前一样,清理工作已经完成,对吗? 在清理前和清理后阶段会发生什么。在基于Maven的项目中,许多缓存输出都存在于您的“目标”文件夹中。当您想要为部署构建项目时,必须确保清除所有缓存的输出,以便始终获得最新的部署信息 例如:如果重命名一个类,则先前编译的版本将保留在target/classes中,直到您运行clean。这可能完全无害

我在很多地方都读过maven的clean和site生命周期,但无法理解它到底是如何工作的。 请举例说明Maven的清洁生命周期流程。 它与构建有什么不同。
和构建开始之前一样,清理工作已经完成,对吗?
在清理前和清理后阶段会发生什么。

在基于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场景测试。根据需要手动重置数据库仍然很有用。