Я хочу, чтобы моя зависимость в блоке dependencyManagement
наследовала версию из spring-boot-parent
блока dependencyManagement
, но добавляю исключение, чтобы мне не нужно было указывать это исключение в каждом из дочерних модулей.
Мой родительский pom наследует от spring-boot-parent:
<artifactId>my-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>???</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencyManagement>
дочерний pom наследует my-parent
:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
Я пробовал несколько подходов:
Когда я заменяю ???
на ${parent.version}
, в дочернем модуле эта версия преобразуется в версию my-parent
: 1.0.0-SNAPSHOT
, что неверно.
Когда я заменяю ???
на ${parent.parent.version}
, maven ломается, поскольку он не поддерживает такие свойства
Я могу исправить ???
, чтобы он был 2.0.1.RELEASE
и это будет работать нормально, но если я обновлю версию весенней загрузки, я должен не забыть обновить версию этой зависимости, которая не интуитивна
Я не могу извлечь2.0.1.RELEASE
как свойство в my-parent
и использовать это свойство в качестве родительской версии, поскольку maven не поддерживает это.
Возможно, выСвойство sed со значением 2.0.1.RELEASE
унаследовано от spring-boot-parent
pom, но, насколько я вижу, такого свойства нет.
Есть ли хороший способ достичь того, чего я хочу