Как исключить транзитивную зависимость в gradle

How to exclude transitive dependencies from gradle

Иногда возникает ситуация, когда некоторые зависимости подтягиваются транзитивно из других библиотек в gradle. Бывают случаи, когда версии этих библиотек отличаются и это приводит к некоторым проблемам.

Как же можно исключить эти транзитивные зависимости из файла gradle.build?

Рассмотрим пример.

dependencies {
    implementation("com.super.lib:awesome-lib:1.16"){
        exclude group: 'com.another.lib', module: "regular-lib"
    }
}

После того, как добавлена необходимая вам в проекте зависимость, но содержащая при этом совершенно ненужную зависимость внутри себя (в примере выше это implementation(«com.super.lib:awesome-lib:1.16»)), следует добавить инструкцию «exclude group», в которой указать пакет (группу) и название модуля. Опять же в примере выше группа исключаемой зависимости называется «com.another.lib», а модуль «regular-lib».

После пересборки проекта данная зависимость не будет подтягиваться транзитивно из импортируемой родительской зависимости.

Добавить комментарий