为什么测试范围依赖性会增加编译范围依赖性?

时间:2015-09-22 03:32:30

标签: maven maven-dependency-plugin

为什么在编译范围依赖项中添加以下结果?

<dependency>
  <groupId>myproject.core</groupId>
  <artifactId>api</artifactId>
  <classifier>tests</classifier>
  <scope>test</scope>
</dependency>

[INFO] +- myproject.core:api:jar:tests:5.0.5-SNAPSHOT:test
[INFO] |  +- org.apache.curator:curator-framework:jar:2.7.1:compile
[INFO] |  |  \- org.apache.curator:curator-client:jar:2.7.1:compile
[INFO] |  +- org.apache.curator:curator-x-discovery:jar:2.7.1:compile
[INFO] |  |  +- org.apache.curator:curator-recipes:jar:2.7.1:compile

我希望复制依赖项在测试范围内排除,不仅可以跳过顶层,还可以从树中删除它及其传递。

1 个答案:

答案 0 :(得分:0)

测试依赖项和测试jar依赖项之间存在差异。

对于测试依赖项,传递依赖项的范围已正确设置为test(请参阅Maven参考中的this table)。

对于测试jar依赖项(这里有你的),行为是不同的。我在Maven文档中找不到任何解释为什么它不同的东西(也许其他有更好洞察力的人可以解释原因)。但是,我发现了一个关于此问题的错误报告(MNG-1378),在10多年后仍未解决,因此我不会抱有希望。