如何传递地排除依赖项?

How can I exclude a dependency transitively?

我都关注了dependency:tree。

...
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.1.5.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-test:jar:2.1.5.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.1.5.RELEASE:test
[INFO] |  +- com.jayway.jsonpath:json-path:jar:2.4.0:test
[INFO] |  |  \- net.minidev:json-smart:jar:2.3:test
[INFO] |  |     \- net.minidev:accessors-smart:jar:1.2:test
[INFO] |  |        \- org.ow2.asm:asm:jar:5.0.4:test
[INFO] |  +- junit:junit:jar:4.12:test
...

我确实做到了。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <exclusions>
    <exclusion>
      <groupId>junig</groupId>
      <artifactId>junit</artifactId>
    </exclusion>
  </exclusions>
  <scope>test</scope>
</dependency>

现在我看到了。

..
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.1.5.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-test:jar:2.1.5.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.1.5.RELEASE:test
[INFO] |  +- com.jayway.jsonpath:json-path:jar:2.4.0:test
[INFO] |  |  \- net.minidev:json-smart:jar:2.3:test
[INFO] |  |     \- net.minidev:accessors-smart:jar:1.2:test
[INFO] |  |        \- org.ow2.asm:asm:jar:5.0.4:test
[INFO] |  +- junit:junit:jar:4.12:test

有什么方法可以传递地排除特定工件吗?

你的方法很好,如果不行,肯定是打错了。

我遇到了类似的排除问题:

net.minidev:json-smart

依赖于 2.3 版中的安全问题。

您应该安装:Maven dependency helper intellij 插件,安装后您可以看到您的依赖项和它们的子依赖项,如下所示(我提到的在 pom 文件底部添加了一个新选项卡):

然后你可以看到你的依赖冲突,版本等等。 如果您右键单击每个依赖项,则可以排除特定的依赖项。

希望本文对您有所帮助。