如何为一个依赖项覆盖配置级别“ transitive = false”

时间:2019-11-02 18:54:14

标签: gradle cucumber build.gradle

我继承了一些代码,并希望将黄瓜添加到项目中,最好更改得尽可能少。但是gradle文件具有配置级别设置,以阻止引入传递依赖项,这导致Cucumber-java无法引入Cucumber-Core,因此失败。

这是build.gradle的相关部分:

configurations.all {
  transitive = false
}

depdendencies {
  compile(group: .... lots of these

  testCompile(group: 'io.cucumber', name: 'cucumber-java8', version: '4.8.0', transitive: true)
  testCompile(group: 'io.cucumber', name: 'cucumber-testng', version: '4.8.0', transitive: true)
}

我希望transitive: true会覆盖配置级别,但是不起作用。

我也尝试添加:

configurations {
  all*.exclude group: 'io.cucumber', module: 'cucumber-java8'
}

但是它根本不会引入这种依赖性

我不希望手动获取黄瓜的所有依赖关系,而宁愿不要删除此配置级别transitive = false。有可能做我想做的事吗?我可以仅针对compile依赖项设置配置吗?还是我必须删除配置级别设置并将transitive: false添加到每个编译依赖项中?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找这样的东西:

configurations {
 compile {
    transitive false
  }
 testCompile {
    transitive true
  }
}