当前位置: 首页 > 知识库问答 >
问题:

Maven toolchains插件的Maven排除

蓝昊然
2023-03-14

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

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

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

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

maven工具链插件的依赖树

所以,我的问题是,我是否排除org.apache。maven:maven工具链或org.apache。maven:maven-core(如下所示)在XYZ中添加工具链插件依赖项时,它会对我的其他依赖项产生任何问题吗

<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>

共有1个答案

东方夕
2023-03-14

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

依赖maven toolchains插件是完全错误的。我接着查看了这个文档:工具链使用指南,其中也没有提到添加依赖项。

我遵循公司内部汇合页面,其中提到包括它是错误的。

 类似资料:
  • 我需要从shade插件中排除log4j工件,以避免log4j漏洞,但是,artifactSet下的exclude标记似乎不起作用。有没有解决这个问题的建议? 我不断发现以下错误:未能执行目标组织。阿帕奇。专家插件:maven shade插件:3.2.4:shade(默认值)on project:目标组织的执行默认值。阿帕奇。专家插件:maven shade插件:3.2.4:shade失败:插件组织

  • 我使用maven surefire插件执行集成测试和单元测试的配置如下。。 然而,当执行单元测试时,它似乎运行我的单个测试类以及运行那些相同类的套件。如何将其配置为仅执行我包含的内容?i、 你喜欢套房吗?(我的套件) 谢谢

  • 我试图摆脱。SF,。DSA和。bouncyCastle中的RSA文件,这样我就可以将jar包含到我的jar中并远程部署它。我发现我需要使用maven-依赖-插件,但是排除似乎并没有真正……排除。有点破坏了整个目的。 如果我解压缩文件,签名密钥仍然在那里,特别是在META-INF目录中。如果我手动删除它们并重新jar它,应用程序就可以工作。我只需要弄清楚如何自动排除这些文件! 下面是我的POM文件,

  • Maven的Resources插件似乎不尊重元素。 我有一个大型Java /Dart项目,我需要在其中部署一个WAR文件,该文件将我的UI和后端都放在单独的JAR中。我想减少部署文件的大小,并且我想从WAR中删除某些文件夹。根据插件留档,我想我可以简单地在插件配置中设置s,并且它不会复制不必要的文件夹。然而,尽管Maven模型包包含函数,但Resources插件似乎完全忽略了这些。 到目前为止,我

  • 问题内容: 由于传递依赖关系,我的战争被xml-apis和xerces jar填充。我尝试按照参考页上有关maven-war- plugin的说明进行操作,但是它不起作用。 我究竟做错了什么 ?如果很重要,我发现我正在使用的maven-war-plugin版本为2.1-alpha-1 问题答案: 您可以将这些依赖项标记为已提供: 这样,maven会将它们添加到编译类路径中,但不会打包它们。假定它们