gpt4 book ai didi

使用 include 设置的 Maven 程序集依赖项不会获取传递依赖项

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

我对 Maven 组装目标有些困扰。我有一个项目,它有许多依赖项,每个依赖项都可能有自己的传递依赖项。如果我运行 mvn dependency:tree ,我可以看到包括传递在内的所有依赖项都得到满足。

当我运行程序集目标时,情况并非如此。我想要的是当我添加一个要包含的依赖项时,那么它的所有传递依赖项也被包含在内。在以下示例中,我希望包含三个依赖项。因此,在制作程序集时,我希望拥有这些依赖项以及这些依赖项的任何传递依赖项。

<assembly>
<baseDirectory>${artifactId}/${artifactId}-${version}</baseDirectory>
<formats>
<format>zip</format>
</formats>

<fileSets>
</fileSets>

<dependencySets>
<dependencySet>
<unpack>false</unpack>
<scope>runtime</scope>
<outputDirectory>/lib
</outputDirectory>
<includes>
<include>com.acme.core:library-1</include>
<include>com.acme.core:library-2</include>
<include>com.acme.core:library-2</include>
</includes>
</dependencySet>
</dependencySets>

但是,如果您打开 zip 文件,您只会发现存在这三个依赖项,这意味着在运行时,由于缺少库,应用程序不适合用途。我发现这完全不直观,因为它违背了人们对 POM 的期望。

有没有人遇到过这个问题,有解决办法吗?

最佳答案

“包含”和“排除”也适用于传递依赖项。尝试将以下配置添加到您的 dependencySet :

<useTransitiveFiltering>true</useTransitiveFiltering>

http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#dependencySet

关于使用 include 设置的 Maven 程序集依赖项不会获取传递依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018174/

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