Являются ли неявно импортированные файлы спецификации Maven доминирующими в Gradle? - PullRequest
0 голосов
/ 21 марта 2019

Я разрабатываю приложение Spring Boot 2.0.x, которое использует Gradle 5.2.1 для импорта нескольких спецификаций Maven, как пользовательских, так и официальных спецификаций Spring.Поэтому я использую синтаксис platform, предоставленный Gradle.Однако я использую плагин dependency-management в сочетании с плагином Spring Boot Gradle.

apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.springframework.boot'

dependencies {
    compile platform("org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}")
    compile platform("com.myOrg:custom-bom:${latestVersion}")
}

Согласно документам эта комбинация плагинов инициирует включение файла BOM Spring Boot.Однако я не знаю, как эта неявно включенная спецификация вписывается в обычный порядок спецификаций.Применяется ли он первым и, следовательно, может быть переопределен другими спецификациями или применяется последним и, таким образом, доминирует над всеми остальными файлами спецификации?

1 Ответ

1 голос
/ 21 марта 2019

В мире Gradle, где для спецификаций используется только platform, не существует правила приоритета. Gradle будет учитывать все ограничения, введенные различными спецификациями и транзитивными зависимостями , и разрешать конфликты обычным образом, если они рекомендуют разные версии.

Я не специалист по плагину Spring dependency-management, но, насколько я понимаю, он направлен на тиражирование контракта спецификации Maven: версии спецификации отменяют любую транзитивную версию и могут, в свою очередь, быть отменены объявлениями локальной версии.

Если это понимание верно, то плагин dependency-management будет применять свои правила для всех зависимостей, охватываемых спецификациями, которые он импортирует. Все, что не включено в плагин, будет подчиняться правилам Gradle.

В этом смысле сочетание может быть не идеальной ситуацией, поскольку изменения содержимого спецификации по сравнению с версией в обоих направлениях могут оказать довольно серьезное влияние на разрешенные зависимости.

...