2015-02-20 5 views
0

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

|-- parent (pom packaging) 
|-- model (jar packaging) 
    pom.xml 
|-- services (jar packaging) 
    pom.xml 
|-- web-app (jar packaging) 
    pom.xml 

pom.xml

Я использую причал плагин погруженными контейнер сервлетов, проблема, что много раз мне нужно запустить военный проект и из моей IDE или из папки веб-приложения, я запускаю mvn jetty: запустите. Это компиляция, тестирование, упаковка, ... веб-приложение, но не другие модули. Подводя итоги, я бы хотел, чем когда я запустил mvn jetty: запустите все модули придут скомпилированы, тесты упакованы. Как я могу настроить плагин причал для этого?

EDIT 1

Предположим, что я некоторые cleasses необходимости модифицировать на модуле обслуживания на затмении, я имею следующую конфигурацию на eclispe:

enter image description here

В этом случае я потеряв изменения в сервисном модуле, и я должен запустить mvn -pl service clean install из моей командной строки, а затем я могу использовать конфигурацию eclipse и иметь все обновления. Я хотел бы делать все, только с maven build на eclipse.

ответ

0

У вас может быть проект с несколькими модулями (желательно отличный от родительского проекта) и выполнить mvn clean install для всех проектов, а затем mvn jetty: запустить в вашем проекте webapp.

Таким образом, вы будете запускать что-то вроде mvn clean install jetty:run в проекте с несколькими модулями. Я сам не тестировал это, так как я не запускал свои серверы таким образом, как объяснено в комментариях.

Я думаю, что мультимодульный подход является лучшим, потому что в «нормальном» использовании maven нет возможности рассказать проекту B, который полагается, и проект jar j для перекомпиляции A. Ожидаемое поведение посмотрите в локальном/удаленном репозитории для банки.

Однако я категорически не рекомендую использовать несколько проектов (модель, dao, service ...), если проекты не имеют другого образа жизни. Если вы делитесь моделью с другими проектами, если проект в банке используется повторно в нескольких военных проектах, это имеет смысл. И в этом случае у вас будет другой номер версии, возможно, захотите перестроить все модули или нет и т. Д.

Если это не так, вы будете бороться с дополнительной сложностью, не получая никаких преимуществ.

Редактировать: в вашем случае вам нужен модульный подход, потому что модель используется совместно с другими приложениями. Но в этом случае, если ваши другие приложения не имеют одинакового жизненного цикла, вы не можете быть такими гибкими и модифицировать модель, не будучи уверенным, что вы не влияете на другие проекты. Таким образом, вам понадобится другой номер версии, возможно, SNAPSHOT, и в этом случае запуск причала в Eclipse - это самое простое решение для запуска последней версии вашего кода.

+0

Мне нужно разделить мой проект, потому что моя модель использует другой проект, моя проблема в том, что я хочу выполнить компиляцию, тестирование, упаковку всех модулей и запустить веб-приложение, используя единственную сборку eclipse maven. Это возможно? – Skizzo

+0

Я думаю, что в этом случае я бы использовал мультимодульный подход.Но извините, чтобы подчеркнуть что-то, что может быть не ответом на ваш точный вопрос и не смотреть на тему, но обычно, когда я хочу установить/развернуть войну или банку, я использую командную строку, и когда я хочу запускать/отлаживать , Я делаю это из IDE. В этом втором случае полный процесс сборки maven не имеет особого значения, поскольку, если все проекты импортированы и доступны в Eclipse, банки в .m2 не используются, поскольку плагин Eclipse имеет свой собственный путь. Это немного сложно понять, но под рукой это позволяет легко отлаживать. –

+0

Извините, но я не могу понять, я обновил свой quesiton – Skizzo

Смежные вопросы