gpt4 book ai didi

java - 阴影 jar 中的 Maven 依赖排除

转载 作者:太空宇宙 更新时间:2023-11-04 09:19:10 26 4
gpt4 key购买 nike

因此,我有一个多模块项目,我创建了一个阴影 jar,用于添加到非 Maven 项目以及支持其他 Maven 项目。我们有一些自己的库作为依赖项。但是,将它们捆绑在阴影 jar 中会导致已经具有这些依赖项的非 Maven 应用程序出现问题(并且不能仅删除以依赖阴影版本)。我一直在尝试在项目的 pom 中创建一个配置文件,以从阴影 jar 中排除这些依赖项,但 Maven 似乎并不关心。

我无法发布整个 pom,但本质上,每个模块都依赖于其他模块,最后我们有一个最终模块,它将所有内容捆绑在一起,这就是我的个人资料所在的位置。我添加了一个依赖项列表,这些依赖项都包含我不想添加到着色 jar 中的 Artifact 的排除项,我使用 dependency:tree 添加了每个对排除项具有传递依赖项的模块,并为其添加了一个依赖项条目及其自身的排除项,我已将一个 artifactSet 添加到了阴影插件配置中以排除这些 Artifact ,并且我添加了强制插件,以便在该 Artifact 存在时使构建失败。

我不想添加的 Artifact 仍在添加到阴影 jar 中。

<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>my-module</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>some.dependency</groupId>
<artifactId>i-dont-want</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

这是可行的,但问题是我还需要对依赖树中进一步依赖于上述模块的模块有依赖关系。

因此,当我执行以下操作时,我试图排除的依赖项无论如何都会出现在阴影 jar 中。

<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>my-module</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>some.dependency</groupId>
<artifactId>i-dont-want</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>my.group</groupId>
<artifactId>dependes-on-my-module</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>

如果我尝试在我的阴影配置中添加排除项,如下所示,它似乎也不关心。

<configuration>
<artifactSet>
<excludes>
<exclude>some.dependency:i-dont-want</exclude>
</excludes>
</artifactSet>
...
</configuration>

我尝试过在线搜索,并且可能尝试了大量有关堆栈溢出的内容,但似乎没有帮助(甚至标记我的个人资料中提供的内容,或者添加对我试图删除但没有运气的 Artifact 具有传递依赖关系的所有依赖项)。

有什么方法可以强制这些传递依赖项不添加到我的着色 jar 中吗?我只是不想添加它们;此时我会尝试任何事情...提前感谢您的帮助。

最佳答案

最终成为一名开发人员,在另一个模块中添加了一个阴影插件,最终获得了包含在其自身中并传递的传递依赖项。除了 Maven 似乎没有办法从轨道上攻击某些东西之外,它现在似乎正在工作。

关于java - 阴影 jar 中的 Maven 依赖排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58561542/

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