У меня проблема с обновлением зависимой версии зависимых родственных проектов.
Моя упрощенная настройка проекта следующая.
root
|--parent
|--tool-core
|--tool
|--functional-tests
Родительский проект содержит все глобальные свойства и зависимостиуправление.Функциональные тесты зависят от инструмента, а инструмент зависит от основной части инструмента.Корень pom.xml
только агрегирует (указывает, включены ли функциональные тесты), а родительский проект является родительским для всех проектов.Я не знаю, является ли это тривиальным, но родительский элемент не включен в агрегацию, поскольку он уже является родительским для каждого дочернего проекта.
Теперь моя проблема заключается в том, если я изменю версию инструментас versions:set
.Версия инструмента изменена, но никакой зависимости от инструмента нет.Как мне это сделать?Я уже пробовал более или менее случайным образом другие цели и пытался прочитать руководство.
Я уже пытался использовать раздел <dependencyManagement>
и использовать свойство для версии в родительском файле, но это не так.получить обновление до новой версии.
Любая помощь действительно приветствуется.
Добавление
Я получаю сообщение "Игнорирование зависимости от реактора: com.tool: tool: jar: null: 1.2.3 "в лучшем случае.Это когда я пытаюсь versions:use-latest-releases
.Тем не менее, versions:display-dependency-updates
показывает, что существует обновление для «локальной зависимости» (функциональные тесты зависят от инструмента).
Обновление
Кажется, что Mavenищите новые версии из репозиториев, в том числе локальные, которые кажутся совершенно очевидными, когда я думаю об этом.Однако это означает, что инструмент должен быть собран и установлен в локальный репозиторий перед обновлением зависимостей.
Мне только интересно, является ли это правильным способом иметь интеграционные тесты в качестве собственного проекта.Я надеялся, что будет способ обновить версию сразу.
Обновление
В основном у меня есть следующие настройки.Зависимость версии от functional-tests
tool
определяется проектом parent
.Я опустил tool-core
, так как он может обрабатываться как часть tool
.
root:
<groupId>com.somecompany</groupId>
<artifactId>x-reactor</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<profiles>
<profile>
<id>cli</id>
<modules>
<module>tool</module>
</modules>
</profile>
<profile>
<id>deploy</id>
<modules>
<module>tool</module>
<module>functional-tests</module>
</modules>
</profile>
</profiles>
parent:
<groupId>com.somecompany</groupId>
<artifactId>x-parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.somecompany</groupId>
<artifactId>tool</artifactId>
<version>3.2.3</version>
</dependency>
</dependencies>
</dependencyManagement>
tool:
<parent>
<groupId>com.somecompany</groupId>
<artifactId>x-parent</artifactId>
<version>1.0</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>com.somecompany</groupId>
<artifactId>tool</artifactId>
<packaging>jar</packaging>
<version>3.2.3</version>
функциональные тесты:
<parent>
<groupId>com.somecompany</groupId>
<artifactId>x-parent</artifactId>
<version>1.0</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>functional-tests</groupId>
<artifactId>functional-tests</artifactId>
<version>0.1</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.somecompany</groupId>
<artifactId>tool</artifactId>
</dependency>
</dependencies>