为什么测试范围依赖性会添加编译范围依赖性?
Why does a test scope dependency add compile scope dependencies?
为什么添加以下内容会导致编译范围依赖项?
<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
我希望排除测试范围的复制依赖项不仅会跳过顶层,还会将其及其传递项从树中删除。
测试依赖项和测试 jar 依赖项之间存在差异。
对于测试依赖项,传递依赖项的范围已正确设置为测试(请参阅 Maven 参考中的 this table)。
对于 test-jar 依赖项(您在此处拥有的),行为是不同的。我在 Maven 文档中找不到任何解释为什么不同的内容(也许其他有更好洞察力的人可以解释原因)。然而,我发现了一个关于这个的错误报告(MNG-1378),这个问题在 10 多年后仍然没有解决,所以我不会让你抱有希望。
为什么添加以下内容会导致编译范围依赖项?
<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
我希望排除测试范围的复制依赖项不仅会跳过顶层,还会将其及其传递项从树中删除。
测试依赖项和测试 jar 依赖项之间存在差异。
对于测试依赖项,传递依赖项的范围已正确设置为测试(请参阅 Maven 参考中的 this table)。
对于 test-jar 依赖项(您在此处拥有的),行为是不同的。我在 Maven 文档中找不到任何解释为什么不同的内容(也许其他有更好洞察力的人可以解释原因)。然而,我发现了一个关于这个的错误报告(MNG-1378),这个问题在 10 多年后仍然没有解决,所以我不会让你抱有希望。