繁体   English   中英

Maven 阴影中的依赖排除 jar

[英]Maven dependency exclusion in shaded jar

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

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

我不想添加的工件仍在添加到阴影 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>

我已经尝试过在线搜索,并且可能已经尝试了很多关于堆栈溢出的东西,但似乎没有帮助(甚至将内容标记为我的个人资料中提供的内容,或者添加所有对我正在尝试的工件具有传递依赖关系的依赖项删除没有运气)。

有什么方法可以强制这些传递依赖项不添加到我的阴影 jar 中? 我只是不想添加它们; 在这一点上,我会尝试任何事情......提前感谢您的帮助。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM