为什么在验证阶段会调用jfrog maven artifactory插件?

时间:2016-09-16 07:26:43

标签: java maven repository maven-plugin artifactory

Here是一个jfrom artifactory插件概述。他们告诉我们:

  

默认情况下,插件的调用阶段是“验证”,我们建议您不要更改它,以便在Maven构建的生命周期中尽早调用插件。

据我所知(我错了?)这个插件用于部署maven项目。所以这个插件应该“等待”,直到所有测试都通过,源代码编译,封装和部署工件只在delploy阶段,没有?

问题:为什么它与验证阶段相关联?

2 个答案:

答案 0 :(得分:1)

我查看了插件的source code并找到了这一行:

String deployGoals = 'deploy,maven-deploy-plugin'

此字段用于recordBuildInfo方法。此方法将BuildInfoRecorder类注册为callsdeploy真实session ends方法的监听器。

答案 1 :(得分:1)

确实artifactory-maven-plugin应用了与通常的mojo(Maven目标)实现不同的模式:它依赖于Maven Lifecycle listeners/extensions

看看它的github repository,实际上是mojo:

  • 确保跳过maven-deploy-plugin default binding setting maven.deploy.skip媒体资源true
  • 将自定义Maven侦听器添加到构建会话BuildInfoRecorderLifecycleParticipant
  • 然后在适当的时刻通过其插件有效deploys

绑定到validate阶段是有效跳过默认deploy行为并注册其自己的侦听器所必需的。