自定义Maven插件执行mvn site时验证目标被触发3次问题求助
问题排查及解决步骤
- 检查插件目标的默认生命周期绑定
先确认你插件中vrs目标的@Mojo注解配置的默认生命周期阶段是否正确,你可以执行如下命令查看目标的详细配置:
如果该目标没有指定默认绑定阶段,或者误绑定了site生命周期下的多个阶段,就会被多次触发。你可以在mvn help:describe -Dplugin={你的插件groupId}:{你的插件artifactId} -Ddetail -Dgoal=vrsexecution配置中显式指定唯一的执行阶段,比如绑定到pre-site阶段:<execution> <id>validate-converters</id> <phase>pre-site</phase> <goals> <goal>vrs</goal> </goals> <configuration> <versionsWarnOnly>true</versionsWarnOnly> </configuration> </execution> - 检查生效POM的重复配置
运行mvn help:effective-pom查看最终生效的POM内容,确认父POM、激活的Profile中是否存在其他绑定了vrs目标的执行配置,哪怕execution id不同,只要目标和绑定阶段匹配就会被执行。 - 排查插件代码逻辑问题
在你的vrs目标的执行入口添加日志,输出当前Maven执行上下文的生命周期阶段和执行ID,确认是多次触发了execution,还是单一次execution内你的逻辑重复执行了三次。如果是后者,排查校验逻辑是否存在循环调用、批量处理的重复触发问题。
内容的提问来源于stack exchange,提问作者user2609605
相关产品推荐
相关产品推荐

