【问题标题】:Gradle: How to include libraries in multiple versions to satisfy dependenciesGradle:如何在多个版本中包含库以满足依赖关系
【发布时间】:2018-07-24 21:05:27
【问题描述】:

我需要在我的 Java Gradle 项目中使用两个库。这两个库都依赖于 Google Guava (com.google.common)。

问题是一个库需要 Guava 19.0,而另一个需要 Guava 23.0。 Guava 的公共 API 在 19.0 和 23.0 之间有一些重大变化,所以我不能简单地强制依赖完全是 Guava 23.0(例如,建议 in this answer)。

有什么方法可以在 Gradle 中解决这个问题?

【问题讨论】:

    标签: gradle dependencies dependency-management


    【解决方案1】:

    简短回答:没有

    在编译代码时,Gradle 不支持同一库的多个版本。默认行为是在发现冲突时采用最新的,但可以更改它以覆盖Resolution Strategy

    但在你的情况下,这些选项都不会帮助你。

    【讨论】:

    • 这意味着,我运气不好?还有哪些其他选择?到目前为止,我从未研究过这个话题,但是在这种情况下,是否有类似“shadow jars”或“shaded jars”之类的东西可以提供帮助?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2014-08-18
    相关资源
    最近更新 更多