gpt4 book ai didi

java - Maven pom 文件继承范围

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:36 26 4
gpt4 key购买 nike

我在父 pom 中有以下定义:

<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.11</version>
<scope>test</scope>
</dependency>

然后在我的 child pom 中:

<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
</dependency>

我发现当我的 WAR 文件(我的子 pom 中的包装类型)构建时,来自 htmlunit 的传递依赖项包含在 WEB-INF/lib 目录中(特别是 commons-codec)。

我会认为,因为依赖项具有“测试”范围,所以它及其任何传递依赖项不应打包。我的假设不正确吗?

最佳答案

您的假设不正确。由于您提供了作用域 test,因此这个 jar 将出现在测试和执行阶段。

应该提供范围。 provided 范围将使 jar 在编译和测试类路径上可用,并且不可传递。

引用http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html dependency scope section了解更多详情。

关于java - Maven pom 文件继承范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127161/

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