Как исключить библиотеку из всех зависимостей в Kotlin DSL build.gradle?
Я начал миграцию с build.gradle
(Groovy) для build.gradle.kts
(Котлин Д.С.Л.) Это то что com.google.common.util.concurrent.ListenableFuture
(от com.google.guava
) существует в нескольких зависимостях. Из-за этого сборка не работает с java.lang.RuntimeException: Duplicate class ...
ошибка.
Ранее (когда у меня было build.gradle
в Groovy) эта проблема была решена с помощью этого фрагмента:
configurations {
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
Но я не могу найти ничего подобного, используя Kotlin DSL. Не могли бы вы предоставить альтернативу Kotlin для приведенного выше фрагмента или предложить другое решение о том, как с этим бороться?
3 ответа
Решение
Это может сработать (хотя я не пробовал):
configurations.forEach { it.exclude("com.google.guava", "listenablefuture") }
Это работает с Gradle Kotlin DSL:
configurations {
all {
exclude(group = "com.google.guava", module = "listenablefuture")
}
}
Для двух групп вы можете использовать так:
configurations.forEach {
it.exclude("com.google.guava", "listenablefuture")
it.exclude(group = "org.jetbrains", module = "annotations")
}