Как я могу получить свои подпроекты для наследования версий зависимостей от суперпроекта в многомодульном проекте Maven? - PullRequest
7 голосов
/ 10 октября 2010

У меня есть многомодульный проект Maven, и я хочу, чтобы подпроекты наследовали версии для сторонних зависимостей, которые я указал в родительском проекте. Это так, мне не нужно повторять номера версий везде. Хотя это не работает, и когда я пропускаю номер версии для детей, я получаю сообщение об ошибке:

dependencies.dependency.version is missing

Что мне нужно изменить, чтобы это работало?

Ответы [ 3 ]

11 голосов
/ 10 октября 2010

Раздел <dependencyManagement> родительского POM предназначен для этой цели:

dependencyManagement: используется POM для управления информацией о зависимостях всех дочерних элементов. Если проект my-parent использует dependencyManagement для определения зависимости от junit:junit:4.0, тогда POM, унаследованные от этого, могут установить свою зависимость, давая только groupId=junit и artifactId=junit, тогда Maven заполнит набор version родителем. Преимущества этого метода очевидны. Детали зависимости могут быть установлены в одном центральном месте, которое будет распространяться на все наследуемые POM. Кроме того, версия и область действия артефактов, включенных в транзитивные зависимости, также могут контролироваться путем их указания в разделе управления зависимостями.

0 голосов
/ 10 октября 2010

Для этого я определяю версии зависимостей, которые мне нужно повторить как свойство в родительском проекте. Итак:

<properties>
  ...
  <guice.version>2.0</guice.version>
</properties>

А потом:

<dependency>
  <groupId>com.google.inject</groupId>
  <artifactId>guice</artifactId>
  <version>${guice.version}</version>
</dependency>

Возможно, не совсем то, что вы просите, но это означает, что вам нужно изменить версию только в одном месте.

0 голосов
/ 10 октября 2010

Есть ли у вас военные зависимости?

Существует открытая jira, которая может быть связана с проблемой, с которой вы столкнулись:

(MNG-2241) Версии требуются, когда этого не требуется для многомодульных проектов и военных зависимостей

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