maven-toolchains-plugin 的 Maven 排除

Maven exclusion for maven-toolchains-plugin

在我们的模块中说 XYZ 我们包含了对 maven 工具链插件的依赖,让我们的 Jenkins 构建 运行 具有特定的 JDK 版本。但是一旦我们包含这个工具链依赖项,当我们将 XYZ 模块作为另一个项目的依赖项时,它会进一步引入许多其他依赖项(请参见下面的屏幕截图)。

其中一些依赖项是由于 slf4j-jdk14-1.5.6.jarslf4j-nop-1.5.3.jar 等工具链引起的,导致 SLF4J 等问题:Class 路径包含多个SLF4J 绑定。 当我们部署应用程序时。

我们为工具链插件添加的 Maven 依赖项

<dependencies>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-toolchains-plugin</artifactId>
      <version>1.1</version>
    </dependency>
</dependencies> 

maven-toolchains-plugin的依赖树

所以,我的问题是,如果我在 XYZ 中添加工具链插件依赖项时排除 org.apache.maven:maven-toolchainorg.apache.maven:maven-core(如下所示),是否会导致与我的其他依赖项相关的任何问题

<dependencies>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-toolchains-plugin</artifactId>
      <version>1.1</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
</dependencies>

此答案基于@khmarbaise 的上述评论。

依赖maven-toolchains-plugin是完全错误的。 我继续查看此文档:Guide to Using Toolchains 也没有谈论添加依赖项。

我关注了一个公司内部汇合页面,其中提到包含它是错误的。