У меня есть многомодульный проект Gradle 6.5, который также включает код некоторых тестовых приспособлений. Чтобы избежать проблем с зависимостями, я хотел бы установить (и поддерживать) версии в одном месте и просто сослаться на безверсионные зависимости в отдельных модулях:
subprojects {
apply plugin: 'java'
dependencies {
implementation 'com.google.guava:guava'
constraints {
implementation 'com.google.guava:guava:20.0'
compileOnly 'com.google.code.findbugs:jsr305:3.0.2'
}
}
}
Теперь, если модуль включает compilyOnly 'com.google.code.findbugs:jsr305'
версия 3.0.2
берется исходя из ограничений выше. Это нормально работает, если я знаю конфигурацию (implementation
, compileOnly
, ...).
Теперь вопрос: как я могу указать версии, применимые ко всем конфигурациям? Что, если модуль решит использовать аннотации JSR305 для кода тестовых приспособлений? testFixtures 'com.google.code.findbugs:jsr305'
не работает, так как версия нигде не указана. Я также считаю, что повторять спецификацию версии для всех (возможных) конфигураций - плохая идея:
implementation 'com.google.code.findbugs:jsr305:3.0.2'
testFixturesImplementation 'com.google.code.findbugs:jsr305:3.0.2'
compileOnly 'com.google.code.findbugs:jsr305:3.0.2'
Есть ли на это ярлык?