Как реализовать зависимость от источника maven среди родственных проектов?

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

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

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

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


person flybywire    schedule 02.03.2009    source источник


Ответы (4)


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

person Romain Linsolas    schedule 02.03.2009
comment
нет, я хочу, чтобы maven знал об исходных зависимостях. затмение в порядке. - person flybywire; 02.03.2009
comment
хорошо, теперь я понимаю, что ты хочешь сделать. Однако я не думаю, что Maven позволит это ... - person Romain Linsolas; 03.03.2009

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

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

Если нет, не могли бы вы уточнить, пожалуйста.

person Rich Seller    schedule 30.07.2009

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

person DanLebrero    schedule 05.11.2009

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

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

Работает на меня.

Изменить: D'oh! Отправил этот ответ не на тот вопрос. Должен был отвечать this

person Don Willis    schedule 15.12.2009