Maven dependencyManagement: наследовать версию зависимости от родителя - PullRequest
0 голосов
/ 31 мая 2018

Я хочу, чтобы моя зависимость в блоке 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, но, насколько я вижу, такого свойства нет.

Есть ли хороший способ достичь того, чего я хочу

1 Ответ

0 голосов
/ 06 декабря 2018

Когда вы используете Maven 3.5, вы можете удалить версию, и Maven не будет жаловаться на отсутствующую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...