【发布时间】:2013-02-19 05:16:13
【问题描述】:
我有一个用 @requiresDependencyResolution 测试注释的 mojo。
它适用于具有单层嵌套的多模块项目,但用户报告了如下结构的问题。
-- my_project
|
-- pom.xml
-- submodule1
|
-- pom.xml
-- submodule2
|
-- pom.xml
-- submodule21
|
-- pom.xml
-- submodule22
|
-- pom.xml
如果 submodule21 依赖于 submodule1 maven 报告
未能在项目 submodule21 上执行目标:无法解析 项目 org.my:submodule21:jar:1.0-SNAPSHOT 的依赖项:可以 找不到工件 org.my:submodule1:jar:1.0-SNAPSHOT
删除 requiresDependencyResolution=test 注释可防止此问题,但我无法访问运行 mojo 所需的信息。
从 github 上的 surefire 代码的简要扫描来看,它看起来也使用 requiresDependencyResolution=test 但能够毫无问题地针对该项目运行。
与我自己的代码唯一明显的区别是它使用 java 注释而不是旧式 javadoc 注释。
万无一失的魔力是如何做到这一点的?
我的代码是
示例项目显示问题
【问题讨论】:
-
基于错误消息,我会假设此多模块构建中的依赖项不正确,因为如果依赖项正确,则构建应该可以正常工作,而无需通过 mvn 安装
-
这是我的第一个想法-但该错误仅发生在我自己的插件上,而不是万无一失。如果项目在某种程度上设置不正确,我希望两个插件都显示相同的错误。
-
您是否阅读了@requiresDependencyCollection 的描述?也许你在处理链中太早了,实际上依赖项还没有放到类路径中?
-
您是否清理了本地存储库并尝试在没有插件的情况下从头开始构建项目?
-
@khmarbaise 感谢您的建议,但事实并非如此 - 只是添加了一个描述如何解决此问题的答案。