【问题标题】:Filtering out provided dependencies for a war过滤掉提供的战争依赖项
【发布时间】:2019-12-30 13:53:09
【问题描述】:

如果我为特定平台(例如 Wildfly)构建战争,我需要过滤掉该平台已经提供的依赖项。

到目前为止,我们通过使用一个特殊的 BOM 来做到这一点,该 BOM 列出了所有提供的范围为 provided 的依赖项。或者,也可以在构建战争时使用 Maven 战争插件来排除依赖关系。

首选的方式是什么?

【问题讨论】:

  • 应该是provided范围。
  • @KarthikeyanVaithilingam 为什么你认为这是更好的方法?
  • 添加为答案。

标签: java maven dependencies maven-war-plugin


【解决方案1】:

为此特定原因提供了范围。

From maven documentation

提供

这很像编译,但表示您希望 JDK 或容器在运行时提供依赖项。例如,在为 Java 企业版构建 Web 应用程序时,您可以将 Servlet API 和相关 Java EE API 的依赖设置为提供的范围,因为 Web 容器提供了这些类。此范围仅在编译和测试类路径上可用,并且不可传递。

提供范围的传递依赖也将在提供范围内,除非它显式添加到编译范围中。如果使用排除,则可能会导致 jar 冲突,除非这些 jar 也被排除在外。

还提供范围适用于其他包装,如ear

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2016-07-12
    • 2012-08-08
    相关资源
    最近更新 更多