Как переопределить уровень конфигурации "transitive = false" для одной зависимости - PullRequest
0 голосов
/ 02 ноября 2019

Я унаследовал некоторый код и хочу добавить огурец в проект, желательно, чтобы он менялся как можно меньше. Но файл 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 Ответ

1 голос
/ 02 ноября 2019

Я думаю, вы ищете что-то вроде этого:

configurations {
 compile {
    transitive false
  }
 testCompile {
    transitive true
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...