gpt4 book ai didi

maven - 在 Maven 中对依赖项进行着色

转载 作者:行者123 更新时间:2023-12-01 07:42:17 26 4
gpt4 key购买 nike

我有两个通过 Maven 导入的依赖项,它们都导入一个公共(public)库,但版本不同,但版本彼此不兼容。本质上描述的问题in this post :

dependency tree

但对我来说不幸的是,解决方案并不像博客文章描述的那么简单,因为没有通用版本的包 Z这适用于两个依赖项。

跳过导致这一点的糟糕设计决策,因为我不控制任何这些库,我希望重新打包顶级依赖项之一并隐藏它的所有依赖项,以便它基本上可以使用自己的独立版本的 Z .这可以用 Maven 完成吗?

我考虑过的一种解决方案是隔离所有依赖于包 Y 的类。并将它们放在单独的应用程序中并以阴影jar 的形式发送其中X进口,但是我想知道是否有更简单的方法来实现这一点。

最佳答案

正如每个人都建议您可以使用 maven-shade-plugin .开源项目通过为每个需要着色的依赖项创建一个 maven 子项目来处理这个问题。因此,在您的情况下,您将需要 3 个 Maven 项目:

  • 一个用于着色依赖 Y
  • 一种用于着色依赖 G
  • 一个用于您的原始项目。您的原始项目包括在 1. 和 2. 中创建的 Artifact 作为依赖项。

  • 您的 Maven 项目层次结构如下所示:
  • 项目
  • pom.xml
  • 阴影-Y
  • pom.xml
  • 阴影-G
  • pom.xml
  • 应用
  • pom.xml

  • here 具有用于对依赖项进行着色的 maven 子项目的项目示例.看 阴影宁19 文件夹以查看如何创建一个专用的 maven 项目来对依赖项进行着色。

    关于maven - 在 Maven 中对依赖项进行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782593/

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