我有一个用@requiresDependencyResolution测试注释的mojo。
它适用于具有单层嵌套的多模块项目,但是用户报告了如下结构的问题。
-- my_project
|
-- pom.xml
-- submodule1
|
-- pom.xml
-- submodule2
|
-- pom.xml
-- submodule21
|
-- pom.xml
-- submodule22
|
-- pom.xml
如果submodule21依赖于submodule1 maven报告
无法在项目子模块21上执行目标:无法解决 项目的依赖项org.my:submodule21:jar:1.0-SNAPSHOT:可以 找不到工件org.my:submodule1:jar:1.0-SNAPSHOT
删除requiresDependencyResolution = test批注可以防止出现此问题,但是我无权访问运行mojo所需的信息。
从github上的surefire代码的简短扫描,它看起来也使用requiresDependencyResolution = test但是能够毫无问题地针对这个项目运行。
与我自己的代码唯一明显的区别是它使用java注释而不是旧式javadoc。
万无一失的mojo如何实现这一目标?
我的代码是
显示问题的示例项目
答案 0 :(得分:0)
为了其他任何有此问题的人的利益 - 我最终解决了这个问题。这个插件没有问题。
surefire和我自己的插件之间的区别就在于它们的运行方式。 Surefire一直处于测试阶段,我自己的插件是通过直接调用目标来运行的。当我将我的插件绑定到验证阶段时,所有内容都会毫无问题地解决。