为什么在Spring Boot pom.xml文件中有此警告?“重写mariadb java客户端的托管版本1.5.9”

为什么在Spring Boot pom.xml文件中有此警告?“重写mariadb java客户端的托管版本1.5.9”,spring,spring-boot,maven,pom.xml,spring-jdbc,Spring,Spring Boot,Maven,Pom.xml,Spring Jdbc,我在很多时候没有使用Spring,我有以下疑问 我有一个与Spring Boot项目相关的pom.xml文件: 我已经添加了与Maria DB数据库连接相关的最后一个依赖项部分,这些行: <!-- Start DB connectivity dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

我在很多时候没有使用Spring,我有以下疑问

我有一个与Spring Boot项目相关的pom.xml文件:

我已经添加了与Maria DB数据库连接相关的最后一个依赖项部分,这些行:

<!-- Start DB connectivity dependencies -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
  <groupId>org.mariadb.jdbc</groupId>
  <artifactId>mariadb-java-client</artifactId>
  <version>1.5.7</version>
</dependency>
<!-- End DB connectivity dependencies -->
在Maria DB客户端的最后一个依赖项上,它向我发出以下警告消息:

重写mariadb java客户端的托管版本1.5.9

这个信息的确切含义是什么?在我看来,在某种程度上,我应该已经有了Spring提供的这个客户机的更新版本。但是在哪里呢?我以前从未导入此依赖项,为什么要导入它


还是我遗漏了什么?

这是因为您的项目将以某种方式通过扩展父POM spring boot starter父项来扩展POM。在spring引导依赖项中,它定义了许多依赖项的版本,其中包含mariadb java客户端的版本

的目的是集中所有依赖项的相关信息。在这种情况下,它为一组库定义了一个默认版本,这样,如果子POM希望包含这些库,它就不需要在POM.xml中为它们指定版本,因为它已经在父POM.xml中定义了

因此,在children项目的pom.xml中,我们可以简单地定义

org.foo.bar 富吧 而不是

org.foo.bar 富吧 1.3.56 它允许所有扩展此父pom的项目具有一致的版本依赖关系

因此,如果您在子pom中指定的依赖项版本与中定义的版本不同,它将向您发出以下警告:

Overriding managed version X.Y.Z for foo-bar

这是因为您的项目将以某种方式通过扩展父POM spring boot starter父级来扩展POM。在spring引导依赖项中,它定义了许多依赖项的版本,其中包含mariadb java客户端的版本

的目的是集中所有依赖项的相关信息。在这种情况下,它为一组库定义了一个默认版本,这样,如果子POM希望包含这些库,它就不需要在POM.xml中为它们指定版本,因为它已经在父POM.xml中定义了

因此,在children项目的pom.xml中,我们可以简单地定义

org.foo.bar 富吧 而不是

org.foo.bar 富吧 1.3.56 它允许所有扩展此父pom的项目具有一致的版本依赖关系

因此,如果您在子pom中指定的依赖项版本与中定义的版本不同,它将向您发出以下警告:

Overriding managed version X.Y.Z for foo-bar