我有一个测试依赖" foo"具有传递依赖性" bar"。另外,我有" bar"作为我的pom中其他地方的编译时依赖。我注意到当我运行mvn依赖:tree时,它表明传递测试依赖" bar"是"编译 - 范围从测试更新;重复省略#34;。
这里发生了什么? maven足够聪明,知道" bar"需要编译范围?如果是这样,这很好。我只想确认这种行为,因为一个好的搜索似乎对我没有帮助。
答案 0 :(得分:0)
您可以检查Transitive Dependencies是否已解决,栏已解决 编译范围,但因为它已经解决而被省略。
你可以通过为“foo”设置不同版本的“bar”来测试自己。由于依赖树中最接近的定义,它总是使用“bar”版本直接依赖项目
答案 1 :(得分:0)
在这种情况下,我遇到的最常见情况是测试依赖项的可传递依赖项也是编译依赖项的可传递依赖项。如果测试依赖的传递依赖也是直接编译依赖,也会发生这种情况。由于需要或必须满足这样的依赖关系,因此必须将其从测试更新为编译。
使用命令mvn -Dverbose dependency:tree
可以清楚地看到这种情况。