2016-09-16 75 views
2

Here是jfrom artifactory插件概述。他们告知:为什么在验证阶段调用jfrog maven artifactory插件?

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

因为我明白(我错了吗?)这个插件是用来部署maven项目的。所以这个插件应该“等待”,直到所有的测试都通过了,源代码才被编译,并且只在解除部署阶段打包和部署工件,不是吗?

问题:为什么它链接到验证阶段?

回答

1

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

综观其github repository的魔力实际上是:

  • 确保跳过maven-deploy-plugindefault binding通过settingmaven.deploy.skip属性true
  • 将自定义的Maven监听到构建会议上,BuildInfoRecorderLifecycleParticipant
  • 然后在适当的时候通过其插件有效地deploys

validate相结合是必要的,有效地跳过默认deploy行为,并注册了自己的听众。

+1

这是一个100%正确的答案。我们这样做的原因是一次部署多项目构建的所有模块,防止构建失败部署结果。 – JBaruch

1

我已经看过该插件的内部source code,发现这条线:

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

此字段在recordBuildInfo方法中使用。这种方法注册类BuildInfoRecorder作为侦听器,其中calls真实deploy方法当session ends

相关问题