Как мне реализовать зависимость от исходного кода maven между братскими проектами?
-
03-07-2019 - |
Вопрос
У меня есть java-проект, состоящий из 3-х подпроектов, каждый из которых генерирует артефакт .jar (и имеет зависимые элементы между ними).Кроме того, есть веб-проекты, которые зависят от первых 3 проектов и генерируют файл war.Файл war - это мой последний артефакт, т.е.то, что я отправляю своим клиентам.
Кроме того, у меня есть родительский модуль, который охватывает все остальные проекты:
<modules>
<module>../core</module>
<module>../commons</module>
<module>../api</module>
<module>../web</module>
</modules>
Я генерирую файлы eclipse (mvn eclipse: eclipse) и работаю с eclipse.Проблема в том, что если я изменяю один из не-веб-проектов, я должен вручную установить его перед развертыванием веб-проекта в моем веб-контейнере.Как я могу сделать так, чтобы веб-проект напрямую зависел от исходного кода других, а не от версии, установленной в репозитории?
Решение
В свойствах вашего веб-приложения (щелкните правой кнопкой мыши на проекте в проводнике пакетов, затем "свойства") добавьте три модуля (core, commons и api) в "Зависимости модулей J2EE" (остальные модули должны быть открыты в рабочей области Eclipse).
Другие советы
Вы хотите добавить зависимость от исходных файлов jar, развернутых в репозитории?
Если это так, вы можете сделать это, добавив источники классификатор зависимости.Видишь этот ответ для получения более подробной информации.
Если нет, не могли бы вы пояснить подробнее, пожалуйста.
Я думаю, ваша проблема в том, что вы просто создаете проект war.Если вы создаете его из командной строки, то вам нужно создать родительский модуль."mvn package" в каталоге, содержащем родительский модуль, должно быть достаточно.Конечно, это означает, что вам нужно создавать все пакеты каждый раз, но именно так работает maven.
Цель dependency: tree сама по себе будет искать информацию в репозитории, а не в реакторе.Вы можете обойти это, установив mvn, как предлагалось ранее, или выполнив что-то менее обременительное, вызывающее реактор, например
зависимость компиляции mvn:дерево
У меня это работает.
Редактировать:О!Опубликовал этот ответ на неправильный вопрос.Должен был отвечать это