【问题标题】:Maven dependency incompatible library classMaven依赖不兼容的库类
【发布时间】:2020-06-09 07:29:11
【问题描述】:

我的应用程序是使用外部库 jar 依赖项定义的

<dependency>
    <groupId>com.lib</groupId>
    <artifactId>Encoder</artifactId>
</dependency>

它有两个版本 1.0 和 2.0。库中拥有的类在这些版本之间的包结构中得到了更新,如下所示。

1.0 -- a.b.c.模板

2.0 -- x.y.z.模板

我的应用程序中使用的另一个名为“Helper”的依赖项也包含上述编码器库,但版本为 1.0。

现在,我的应用程序是使用“编码器”库版本 2.0 以及“助手”依赖项定义的。

我的 Encoder 库的应用使用情况

import x.y.z.Template
..

Encoder 库的 'Helper' 依赖使用

import a.b.c.Template
..

代码构建失败,类文件未找到错误,如下所示。

无法访问 a.b.c.Template 类文件,因为找不到 a.b.c.Template

感谢您在寻找解决方案方面的帮助。 提前致谢!

【问题讨论】:

    标签: java maven shared-libraries maven-dependency


    【解决方案1】:

    最好的办法是避免上述情况,仔细选择依赖版本,直到一切顺利。

    如果这太难了,您可以查看 maven-shade-plugin,它允许您重新定位合并到依赖项中的包。

    【讨论】:

    • 感谢您的评论。我已经尝试过如下着色器插件,但徒劳无功。请纠正。 ``` com.lib:Encoderx/y/z/**a/b/ c/** ```
    • 对不起,如果您对 Maven shade 插件的使用有疑问,请单独提出问题并将您的配置放在那里。我无法读取 cmets 中的 XML。
    • 这是关于阴影的单独问题 - stackoverflow.com/questions/60399179
    猜你喜欢
    • 2021-05-15
    • 2016-11-23
    • 1970-01-01
    • 2012-01-22
    • 2020-12-06
    • 2018-10-09
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多