Почему родительская избыточная версия дочерней зависимости

#spring-boot #maven #dependencies #pom.xml

#весенняя загрузка #maven #зависимости #pom.xml

Вопрос:

У меня есть приложение Spring boot:

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.3.RELEASE</version>
</parent>
  

которые поддерживают hazelcast 3.*

Я хочу использовать hazelcast 4. * поэтому я создаю общий проект jar с некоторыми общими функциями и добавляю его в свой проект:

     <dependency>
        <groupId>cz.my</groupId>
        <artifactId>my-hazelcast-common</artifactId>
    </dependency>
  

в этой зависимости используется hazelcast 4. * когда я проверяю зависимость, я вижу, что используется версия 3:

 [INFO]  - cz.my:my-hazelcast-common:jar:2.1-SNAPSHOT:compile
[INFO] |  - com.hazelcast:hazelcast:jar:3.12.8:compile
  

как я могу продолжать использовать версию из зависимости, а не из родительской?

Ответ №1:

Эти версии устанавливаются в spring-boot-dependencies , который является родительским для вашего родителя.

Вам нужно переопределить свойства

 <hazelcast.version>3.12.8</hazelcast.version>
<hazelcast-hibernate5.version>1.3.2</hazelcast-hibernate5.version>
  

и, возможно, еще немного в зависимости от того, что вы хотите сделать.

Вы не можете просто игнорировать значения и использовать значение из своей зависимости. Вам нужно переопределить это явно.