当前位置: 首页 > 知识库问答 >
问题:

如何强制Gradle为两个依赖项设置相同的版本?

斜单鹗
2023-03-14

我使用以下两个依赖项:

compile 'com.google.guava:guava:14.0.1'
compile 'com.google.guava:guava-gwt:14.0.1'

两者必须是相同的版本才能正常工作。由于我的其他依赖项使用更高的版本,Gradle为每个依赖项使用不同的版本。

我通过运行gradle依赖项找到了这一点:

compile - Compile classpath for source set 'main'.
 +--- com.google.guava:guava:14.0.1 -> 17.0
 +--- com.google.guava:guava-gwt:14.0.1
 |    +--- com.google.code.findbugs:jsr305:1.3.9
 |    \--- com.google.guava:guava:14.0.1 -> 17.0 

如何强制Gradle为这两个依赖项设置相同的版本?

共有3个答案

吕嘉赐
2023-03-14

我也遇到过类似的情况,其中一个依赖项使用了spring-web 4.2.4,但已损坏。您必须强制使用所需的特定库版本。正如另一条评论中提到的,它可能会导致兼容性问题,但有时是必要的。

强制使用我发现的库版本的侵入性最小的方法是使用

compile "org.springframework:spring-web:4.2.3.RELEASE"

将依赖项配置指定为强制:

compile("org.springframework:spring-web:4.2.3.RELEASE"){
    force = true
}

当我需要暂时降级Spring版本(直到下一个版本)时,我使用了它。

傅新
2023-03-14
configurations.all {
  resolutionStrategy.eachDependency { details ->
    if (details.requested.group == 'com.google.guava') {
      details.useVersion "14.0.1"
    }
  }
}

dependencies {
  compile 'com.google.guava:guava'
  compile 'com.google.guava:guava-gwt'
}
左丘嘉言
2023-03-14

将此部分添加到dependencies.gradle文件

configurations.all {
        resolutionStrategy { 
            force 'com.google.guava:guava:14.0.1'
            force 'com.google.guava:guava-gwt:14.0.1'
        }
    }
 类似资料:
  • 问题内容: 我使用以下两个依赖项: 两者必须为同一版本才能正常工作。由于我的其他依赖项使用更高的版本,因此Gradle为每个依赖项使用不同的版本。 我通过运行发现了这一点: 如何强制Gradle为这两个依赖项设置相同的版本? 问题答案: 您的依赖项之一是强制更新番石榴版本。使用以定位库驱逐你的版本。 您遇到的问题是,如果您强迫它使用14.0.1,则另一个库可能无法正常工作。您是否可以仅使用17.0

  • 问题内容: 我正在为Java中的ERP系统进行定制。在我的定制中,我想使用Apache POI 3.10.1。因此,我集成了jars poi-3.10.1-20140818.jar和poi-ooxml-3.10.1-20140818.jar。 但是,这些jar包含几个类,这些类已经包含在ERP系统的核心代码中,但是有所不同。 如果核心ERP类覆盖POI类,则定制将引发运行时异常。如果POI类覆盖核

  • 我无法使用Gradle强制生成依赖项的版本。我的目标是使用0.20.0版本。发布了Spring HATEOAS库的,但尽管我付出了所有的努力,它仍然解析为0.19.0。释放。 我尝试了许多策略,包括孤立的策略和相互结合的策略。这些策略包括但可能不限于以下策略(请注意,在所有情况下都在文件中定义,该文件位于声明Spring HATEOAS依赖项的模块目录的父目录中): #1(在声明依赖关系的模块的b

  • 但是我有两种回购方式 如何创建两个bean,其中一个是用注入的,另一个是用注入的?

  • 问题内容: 我有一个项目,其中两个依赖项使用同一库的不同版本。例如,我的项目具有dependency 和dependency 。和都使用通用的库/依赖项,但版本不同。拥有的版本和具有的版本。所以,现在当我添加和在我的项目依赖,有2个版本,在我的项目的。 我期望在运行时由和引用各个版本。但事实并非如此。不知怎的,当我在我的项目运行测试时,使用的,最好应使用(因为在中,明确指定/加)。所以,它打破了执

  • 问题内容: 我刚刚遇到了一个案例,即我的Maven项目有两个直接依赖项,其中有两个不同版本的特定传递性依赖项。 在我的特殊情况下,我直接依赖以下内容: 和 这两个依赖项都对com.sun.jersey:jersey- core具有(较深)的传递性依赖关系,但是每个都有不同的版本。Maven并没有失败,甚至没有警告(或者,如果没有,我从来没有看到过!)正在发生这样的事情……因此,直到调试了球衣版本时