如何从战争包中排除lib

时间:2019-01-30 13:44:34

标签: java maven

有人知道如何将特定的lib排除在打包到.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),这会给应用程序服务器带来一些麻烦。有没有一种方法可以从包装中排除此特定的库?我无法通过设置提供的标签来排除整个罐子。

提前谢谢

1 个答案:

答案 0 :(得分:0)

要在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,但会在构建后向最终战争中添加类路径,如果您确实发生了这种情况,可能会导致运行时错误在部署时会以某种方式错过JAR。

您可以做的

第二个操作是使用<packagingExcludes>配置参数。

POM.xml中的语法如下:

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

您可以在排除特定罐子的情况下访问Apache Maven Doc

相关问题