Это потому, что ваш проект каким-то образом расширит POM spring-boot-dependencies
за счет расширения родительского POM spring-boot-starter-parent
. А внутри spring-boot-dependencies
он определяет версию многих зависимостей в <dependencyManagement>
, версия которой mariadb-java-client
равна 1.5.9 .
Цель управление зависимостями используется для централизации всей связанной с зависимостями информации. В этом случае он определяет версию по умолчанию для набора библиотек, так что если дочерний POM хочет включить эти библиотеки, ему не нужно указывать версию для них в их pom.xml
, как это уже определено в родительском ' с <dependencyManagement>
.
Итак, в pom.xml
дочернего проекта мы можем просто определить
<dependency>
<groupId>org.foo.bar</groupId>
<artifactId>foo-bar</artifactId>
</dependency>
вместо
<dependency>
<groupId>org.foo.bar</groupId>
<artifactId>foo-bar</artifactId>
<version>1.3.56</version>
</dependency>
Это позволяет всем проектам, расширяющим этот родительский проект pom будет иметь согласованную версию зависимостей.
Итак, если вы укажете версию зависимости внутри дочернего pom, которая отличается от той, что определена в <dependencyManagement>
, она выдаст вам следующее предупреждение:
Overriding managed version X.Y.Z for foo-bar