- Обновляет транзитивную зависимость до указанной минимальной версии, если в противном случае она была бы ниже.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-tomcat:2.7.18'
constraints {
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.84' //upgrades 9.0.83->9.0.84
}
} - Само может быть переопределено более высокой версией, предоставленной где-то еще (родителем или спецификацией), т. е. старое ограничение безвредно. и никогда не ПОНИЖАЕТ пакет по сравнению с тем, каким он был бы в противном случае.
implementation 'org.springframework.boot:spring-boot-starter-tomcat:2.7.18'
constraints {
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.82' // does not downgrade 9.0.83->9.0.82

}
}
- Если транзитивная зависимость не будет использоваться ни одной из ваших прямых зависимостей, она не будет включена в вашу сборку< /li>
// implementation 'org.springframework.boot:spring-boot-starter-tomcat:2.7.18'
constraints {
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.84' // does nothing

}
}
Я надеюсь воспроизвести эти функции в maven. Использование устанавливает флажки 1 и 3, но приводит к понижению более высоких версий, а это означает, что их необходимо постоянно очищать.
org.springframework.boot
spring-boot-starter-tomcat
2.7.18
provided
org.apache.tomcat.embed
tomcat-embed-core
9.0.82
При настройке диапазона версий всегда будет использоваться самая высокая версия в этом диапазоне.
org.springframework.boot
spring-boot-starter-tomcat
2.7.18
provided
org.apache.tomcat.embed
tomcat-embed-core
[9.0.82,)
Мой желаемый результат:
org.springframework.boot
spring-boot-starter-tomcat
2.7.18
provided
org.apache.tomcat.embed
tomcat-embed-core
9.0.82
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-downgrad