Вывод версии родителя из переменной в POM - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть настройка проекта весенней загрузки, в которой есть родительский модуль и пара дочерних модулей. Одним из этих дочерних модулей является фактический весенний загрузочный модуль, и он ссылается на остальные дочерние модули как зависимости jar. Родительский pom - это место, где я управляю зависимостями всех моих дочерних модулей. Родительский pom - это место, где объявлен родительский тег стартового загрузчика. В простых проектах мне никогда не приходилось указывать версию начальных зависимостей, поскольку они напрямую выбирались из родительского-стартера. Но в этой настройке проекта на версию не ссылается родительский элемент. Вместо этого я получаю следующую ошибку:

*'dependencies.dependency.version' for org.springframework.boot:spring-boot-starter-web:jar is missing.*

Из-за этого я вынужден указать версию весенней загрузки для всех моих начальных зависимостей.

Чтобы централизовать все эти версии, я подумал о том, чтобы иметь одну переменную в разделе свойств, а затем использовать ее для родительских и для начальных зависимостей. Примерно так:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>${boot.version}</version>
</parent>

<properties>
    <boot.version>2.1.7.RELEASE</boot.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${boot.version}</version>
    </dependency>
</dependencies>

Это не похоже на работу. Зависимости выбирают переменную просто отлично, но родитель не ссылается на переменную. Это то, что можно сделать, или это просто дефект реализации? Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Разные свойства разрешаются в разных позициях. Попробуйте переименовать ${boot.version} в ${revision} (и, конечно же, <boot.version> в <revision>).

0 голосов
/ 24 февраля 2020

Вы можете импортировать зависимости при загрузке пружины как BOM, а не как родительский POM. Это поместит все зависимости в ваше управление зависимостями и позволит вам пропустить тег версии

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Недостаток: это работает только для зависимостей и не будет работать для плагинов, поэтому вам придется добавить плагины от spring-boot-parent самостоятельно.

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