Префикс gradle исключает зависимости - PullRequest
0 голосов
/ 14 апреля 2020

При разработке приложений Had oop очень быстро требуется множество подмодулей основного проекта Had oop. Чтобы принудительно указать конкретную c версию, я, как автор моей собственной работы Had oop, хотел бы изменить версию Had oop для транзитивных библиотек.

Т.е. для всех hadoop-* зависимости и переходные зависимости. Я хочу установить для них версию foo.bar.baz

. Как я могу добиться этого с помощью Gradle, не указывая вручную каждый модуль?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Если вы используете Gradle 6+, я настоятельно рекомендую изучить отдельную главу о выравнивании зависимостей и, в частности, об использовании виртуальных платформ . Это в сочетании с строгим ограничением версии должно дать вам нужный результат.

Если вам нужно поддерживать более широкий диапазон версий Gradle, ответ от Франциско Матео с правилом разрешения будет действительный подход.

0 голосов
/ 15 апреля 2020

Вы захотите написать собственное правило разрешения зависимостей. Например:

configurations.all {
    resolutionStrategy.eachDependency {
        if (requested.group == "org.apache.hadoop") {
            useVersion("3.2.1")
            because("some description why this version is needed.")
        }
    }
}

См. https://docs.gradle.org/current/userguide/resolution_rules.html

Альтернативой вышеописанному является создание / publi sh вашей собственной платформы или "Спецификация".

...