java - Maven war 插件问题

标签 java maven maven-3

我正在使用 maven 来打包我的 war 文件。我在 provided as 范围内有一些依赖项。当我进行 Maven 全新安装时, war 已成功创建,但具有所提供范围的 jars 的传递依赖项包含在我的 lib 目录中。有什么办法可以去除它们吗?

示例场景:下面是我对 pom 的依赖之一

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>${resteasy.version}</version>
        <scope>provided</scope>
    </dependency>

这个包括 jar activation-1.1.jar。 resteasy-jaxrs 的依赖树如下所示。

[INFO] +- org.jboss.resteasy:resteasy-jaxrs:jar:2.3.6.Final:provided
[INFO] |  +- org.jboss.resteasy:jaxrs-api:jar:2.3.6.Final:provided
[INFO] |  +- javax.annotation:jsr250-api:jar:1.0:compile
[INFO] |  +- javax.activation:activation:jar:1.1:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.1.2:provided
[INFO] |  |  \- org.apache.httpcomponents:httpcore:jar:4.1.2:provided
[INFO] |  \- net.jcip:jcip-annotations:jar:1.0:compile

最佳答案

最简单的方法是创建一个 <dependencyManagement>标记并将子依赖项放入其中并将范围设置为提供:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>jsr250-api</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

这样你的传递依赖的范围就被覆盖了:

[INFO] |  +- javax.annotation:jsr250-api:jar:1.0:provided (scope managed from compile)
[INFO] |  +- javax.activation:activation:jar:1.1:provided (scope managed from compile)

一定要做一个Maven-> Update Project并检查 Force Update检查 dependency:tree 之前的复选框.

关于java - Maven war 插件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230394/

相关文章:

java - 使用鼠标在 Java 中设置圆弧位置

java - 将数组中的每个数字乘以 n - java

java - 为什么我会收到 SAXparseException "Element type must be declared",即使它是在将 XML 文件加载到 Properties 对象时声明的?

java - Maven 找不到某些依赖项的组件

maven - 存储库布局是什么意思

java - 如何在 Java 中初始化和递增字节数组?

java - 使用 Angular 2+ 启动 Spring maven 项目

java - 如何使用 cxf-xjc-plugin 从多个 xsd 生成 pojos?

java - NoClassDefFoundError : org. slf4j.LoggerFactory 是一个受限类

git - 项目 + 每个开发人员 nbactions.xml?