Как ссылаться на родительский проект от ребенка - PullRequest
0 голосов
/ 03 марта 2012

У меня есть многомодульный проект, подобный этому:

  • GWT-приложение
  • модель
  • веб-приложение (зависит от gwt-приложения и модели)

когда я пытаюсь выполнить какие-либо цели в веб-приложениях, например, запустить jetty, сборка завершается неудачно, поскольку maven не может найти его зависимости (я не устанавливал модули в локальный репозиторий). Есть ли возможный способ ссылки на родительский pom, чтобы при выполнении каких-либо целей в подмодуле все его зависимости были скомпилированы (перекомпилированы)?

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Пример ваших pom-файлов был бы великолепен, но в многомодульных проектах я всегда объявляю зависимости в родительском pom в теге dependencyManagement:

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>group-a</groupId>
        <artifactId>artifact-a</artifactId>
        <version>1.0</version>
      </dependency>
...

В модуле пом я просто делаю зависимость без версии:

<dependencies>
    <dependency>
      <groupId>group-a</groupId>
      <artifactId>artifact-a</artifactId>
    </dependency>
...

Таким образом, каждый модуль использует одну и ту же версию.

Следует помнить, что модули в maven не наследуют зависимости от родителя. Вы должны объявить зависимости, используемые в самом модуле.

Другое дело, я считаю, что когда вы работаете за пределами IDE (которая ищет в рабочей области зависимости), вам необходимо установить каждый модуль в вашем локальном репозитории. Я не думаю, что maven будет искать неустановленные зависимости в многомодульном проекте, если вы не выполняете его на родительском pom.

0 голосов
/ 03 марта 2012

Если вы делаете родительский pom просто обычным образом, как

<plugins>
</plugins>
<dependencies>
</dependencies>

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

<parent>
</parent>

Вам даже не нужно объявлять те же плагины или зависимости в дочернем pom таким образом.Вам нужно только перечислить плагины или зависимости в дочернем pom, если вы используете его или в родительском pom, ИЛИ вы хотите переопределить что-то в родительском pom.Я на самом деле только что прошел всю эту неделю и теперь мои сборки работают нормально (маленькие дочерние помпы с большим количеством вещей в родительском помете, например конфигурации плагинов).

Я задал вопрос по этому поводу, который может помочь вам:1009 * Maven - Parent Pom - Наследование детей

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