gpt4 book ai didi

java - maven - 如何从 war 中排除整个模块

转载 作者:行者123 更新时间:2023-12-01 22:04:55 25 4
gpt4 key购买 nike

我有以下 Maven 项目结构:

  • 项目A
    • 子项目B <- jar
    • 子项目C <- war
    • 子项目D <- war

sub-projectCsub-projectD 需要有 sub-projectB 作为依赖项。但是 sub-projectCsub-projectD 构建的 war 不应包含 sub-projectB 的依赖项。该 jar 稍后将单独包含在类路径中(这是因为 sub-projectB 是 >100MB 的大 jar,并且将其与 war 打包在大小和复制所需的时间方面都将非常昂贵 war 在部署期间从一个地点转移到另一个地点)。

如何从sub-projectCsub-projectD的war包中排除sub-projectB的依赖?

一种方法是排除 maven-war-plugin 中的 jar 列表。但我们必须指定每个 jar 名称或使用通配符。我们不能直接排除子模块的依赖关系。有没有更简单的方法?

最佳答案

这正是范围 provided 的范围是为了.具有此范围的每个依赖项都将在编译时使用,但不会包含在最终的 war 中(因为它是由运行时容器提供的)。

因此,对 sub-projectB 的依赖应该是在 sub-projectCsub-projectD pom 中:

<dependency>
<groupId>...</groupId>
<artifactId>sub-projectB</artifactId>
<version>...</version>
<scope>provided</scope>
</dependency>

关于java - maven - 如何从 war 中排除整个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32967739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com