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

标签 java maven repository maven-plugin artifactory

Here是 jfrom Artifact 插件概述。他们告诉:

The plugin's invocation phase is "validate" by default and we recommend you don't change it so the plugin is called as early as possible in the lifecycle of your Maven build.

据我了解(我错了吗?)这个插件是用来部署maven项目的。所以这个插件应该“等待”直到所有测试都通过,源代码编译并仅在 delploy 阶段打包和部署 Artifact ,不是吗?

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

最佳答案

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

看看它的github repository ,魔力实际上是:

  • 确保跳过 maven-deploy-plugin default binding通过 setting maven.deploy.skip属性为 true
  • 向构建 session 添加自定义 Maven 监听器,即 BuildInfoRecorderLifecycleParticipant
  • 然后在适当的时刻有效 deploys通过其插件。

绑定(bind)到 validate 阶段对于有效跳过默认的deploy 行为并注册其自己的监听器是必要的。

关于java - 为什么 jfrog maven artifactory 插件在验证阶段被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39525959/

相关文章:

java - 向 Maven-Java-project 添加持久性时出错(org.codehaus.mojo)?

jakarta-ee - Java EE MDB 电子邮件接收器示例

java - Spring维护数据一致性

java - 设置在速度下不起作用

java - JTable 不添加标题行

java - cxf-rt-frontend-jaxws 的 Maven 依赖项破坏了现有的 SOAP 客户端

maven - 在Gradle中过滤存储库的依赖项查找

Git 突然找不到 Github 仓库

java - 将tomcat打包成RPM进行web部署

java - 如何使用easymock进行hashmap