Как мне реализовать исходную зависимость maven среди одноуровневых проектов? - PullRequest
1 голос
/ 02 марта 2009

У меня есть проект Java, который состоит из 3 подпроектов, каждый из которых генерирует артефакт .jar (и среди них есть подзависимости). Кроме того, есть веб-проекты, которые зависят от первых 3 проектов и генерируют файл войны. Файл войны - это мой последний артефакт, то есть то, что я отправляю своим клиентам.

Кроме того, у меня есть родительский модуль, который охватывает все другие проекты:

<modules>
    <module>../core</module>
    <module>../commons</module>
    <module>../api</module>
    <module>../web</module>
</modules>

Я генерирую файлы затмений (mvn eclipse: eclipse) и работаю с eclipse. Проблема в том, что если я изменяю один из не-веб-проектов, я должен вручную установить его перед развертыванием веб-проекта в моем веб-контейнере. Как сделать так, чтобы веб-проект зависел напрямую от исходного кода других, а не от версии, установленной в репозитории.

Ответы [ 4 ]

0 голосов
/ 15 декабря 2009

Зависимость: само дерево цель будет искать вещи в хранилище, а не в реакторе. Вы можете обойти это, установив mvn, как предлагалось ранее, или сделав что-то менее обременительное, вызывающее реактор, например

зависимость компиляции mvn: дерево

У меня работает.

Редактировать: D'Oh! Разместил этот ответ на неправильный вопрос. Должен был ответить на

0 голосов
/ 31 июля 2009

Хотите добавить зависимость от исходных jar-файлов, развернутых в хранилище?

Если это так, вы можете сделать это, добавив в зависимость sources классификатор. См. этот ответ для более подробной информации.

Если нет, пожалуйста, уточните.

0 голосов
/ 05 ноября 2009

Я думаю, что ваша проблема в том, что вы просто строите только военный проект. Если вы собираете его из командной строки, то вам нужно создать родительский модуль. "mvn package" в каталоге, который содержит родительский модуль, должно быть достаточно. Конечно, это означает, что вам нужно каждый раз собирать все пакеты, но так работает maven.

0 голосов
/ 02 марта 2009

В свойствах вашего веб-приложения (щелкните правой кнопкой мыши проект в проводнике пакетов, затем «Свойства»), добавьте три модуля (core, commons и api) в «Зависимости модулей J2EE» (остальные модули должны быть открыты). в рабочей области Eclipse).

...