什么是;从测试更新范围”;你是说Maven?

什么是;从测试更新范围”;你是说Maven?,maven,Maven,我有一个测试依赖项“foo”,它有一个可传递的依赖项“bar”。此外,在pom的其他地方,我将“bar”作为编译时依赖项。我注意到,当我运行mvn dependency:tree时,它声明可传递的测试依赖项“bar”是“编译范围从测试中更新;为重复而省略” 这里发生了什么?maven是否足够聪明,知道“bar”需要编译范围?如果是这样,这就太好了。我只想确认一下这种行为,因为好的搜索似乎对我没有帮助。你可以检查是否已解决,bar是否已解决 编译作用域,但由于已解析而忽略 你可以用不同版本的“ba

我有一个测试依赖项“foo”,它有一个可传递的依赖项“bar”。此外,在pom的其他地方,我将“bar”作为编译时依赖项。我注意到,当我运行mvn dependency:tree时,它声明可传递的测试依赖项“bar”是“编译范围从测试中更新;为重复而省略”

这里发生了什么?maven是否足够聪明,知道“bar”需要编译范围?如果是这样,这就太好了。我只想确认一下这种行为,因为好的搜索似乎对我没有帮助。

你可以检查是否已解决,bar是否已解决 编译作用域,但由于已解析而忽略


你可以用不同版本的“bar”来测试自己。由于依赖关系树中最近的定义,它总是直接使用项目依赖关系的“bar”版本。在这种情况下,我遇到的最常见的情况是测试依赖关系的可传递依赖关系也是编译依赖关系的可传递依赖关系。如果测试依赖项的可传递依赖项也是直接编译依赖项,也可能发生这种情况。由于这种依赖关系是作为编译依赖关系所需要的,或者是为了满足编译依赖关系,所以它会从一个测试更新到另一个编译

使用命令
mvn-Dverbose-dependency:tree
可以清楚地看到这种情况