【问题标题】:How to exclude lib from war package如何从war包中排除lib
【发布时间】:2019-01-30 13:44:33
【问题描述】:

有人知道如何从打包到 .war 中排除特定的库

我有以下依赖:

<dependency>
    <groupId>com.intel.mtwilson</groupId>
    <artifactId>mtwilson-client</artifactId>
    <version>2.0.3</version>
</dependency>

WEB-INF 中的mtwilson-client-2.0.3.jar 然后包含一个库(javax servlet),这会导致应用服务器出现一些问题。有没有办法从包装中排除这个特定的库?我不能通过设置提供的标签来排除整个 jar。

提前谢谢你

【问题讨论】:

  • @Peeve,你能从构建中排除 Jar 吗?
  • 是的,我可以排除整个 jar,但目标是仅排除在该 jar 中打开的特定库,而不是排除整个 Jar。

标签: java maven


【解决方案1】:

在WAR中排除包含上述jar的maven唯一需要做的就是将其标记为provided

所以现在您的上述依赖项将如下所示:

<dependency>
    <groupId>com.intel.mtwilson</groupId>
    <artifactId>mtwilson-client</artifactId>
    <version>2.0.3</version>
    <scope>provided</scope>
</dependency>

注意: provided 不会将特定的 JAR 添加到 war 中,但会在构建后为最终的 war 添加一个类路径,如果你真的错过了这可能会导致一些运行时错误JAR 在部署时不知何故。

第二你可以做的是使用&lt;packagingExcludes&gt;配置参数。

POM.xml 中的语法如下:

        <configuration>
          <packagingExcludes>WEB-INF/lib/mtwilson-client-2.0.3.jar</packagingExcludes>
        </configuration>

您可以访问 Apache Maven Doc 排除特定 jar。

【讨论】:

  • 感谢您的努力,但目标是获取在该 JAR 中打开的特定库的 rif,而不是排除整个 JAR 本身。
猜你喜欢
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 2022-01-18
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
相关资源
最近更新 更多