在compile中排除类依赖性,但在testCompile中包含gradle

在compile中排除类依赖性,但在testCompile中包含gradle,gradle,dependencies,Gradle,Dependencies,我遇到了一个问题,在我包含的一个lib中,我有一个旧版本的library Foo作为传递依赖项。我想在testCompile中使用较新版本的库Foo,但当我在intelliJ中运行测试时,它会导致冲突,因为intelliJ默认使用较旧的Foo库 我尝试过排除Foo,然后在testCompile中显式地包含它,但排除似乎覆盖了testCompile中的include 我目前正在使用下面的强制解决方案,但我更希望我不强制编译特定版本的依赖项 configurations.all { resolu

我遇到了一个问题,在我包含的一个lib中,我有一个旧版本的library Foo作为传递依赖项。我想在testCompile中使用较新版本的库Foo,但当我在intelliJ中运行测试时,它会导致冲突,因为intelliJ默认使用较旧的Foo库

我尝试过排除Foo,然后在testCompile中显式地包含它,但排除似乎覆盖了testCompile中的include

我目前正在使用下面的强制解决方案,但我更希望我不强制编译特定版本的依赖项

configurations.all {
  resolutionStrategy {
    force 'org.foo:bar:1.0'
  }
}

您可以考虑配置IDEA .MuleDistaseStest.测试如下:

idea {
  module {
     scopes.TEST.minus += ['org.foo:bar:0.9-oldversion']
  }
}

然后运行
gradleCleanIdea
。您也可以考虑修改TestC类配置,以排除旧版本。

要清楚,当您在CLI上运行它们时,测试会通过吗?但是当您在ItLILJ中运行时,测试会失败吗?如果是这种情况,可能您的项目模块与Gradle的项目依赖项不同步。是的,它们通过CLI传递。然而,如果我清理我的项目并运行gradleidea,它并不能解决问题。