2015-11-27 5 views
0

У нас есть установка модуля Maven так:Maven, m2e, а не строить локальные зависимости

  • Родитель
    • общий
    • WebApp

Где WebApp имеет объявила зависимость от общего.

В нашей среде Eclipse, используя m2e, мы внесли изменения в common. Затем выполнил пакет maven на webapp, развернул и протестировал веб-сервис. В настоящее время произошла ошибка, указывающая, что пакет, который мы сделали, не содержит последних изменений.

Мы пытаемся выяснить, как использовать Maven в нашей повседневной разработке. Итак, какова наилучшая практика для таких ситуаций?

Способом решения этой проблемы было бы; Внесите изменения в common, сохраните их, запустите maven install, внесите изменения в webapp, запустите maven package и используйте файл war для тестов. Но это содержит много ручных шагов.

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

+1

Являются ли проекты частью одного и того же проекта с несколькими модулями? Если это так, вы не должны запускать Maven из модуля, но из родителя. – Tunaki

+0

@Tunaki Да, они оба разделяют одного и того же родителя. Но если родитель будет расти только из двух модулей, сборка займет очень много времени только для изменений в двух модулях, не так ли? – Fredrik

+0

В этом случае вопрос будет: если только эти два проекта будут меняться, то почему существуют другие модули? Они могут быть независимыми проектами. – Tunaki

ответ

0

Как вы ожидаете, что общие изменения будут доступны, если вы не упакуете и не разворачиваете их отдельно? Maven не волшебство, и это не может сделать волшебные вещи. Решение в этом случае состоит в том, чтобы вручную развернуть общий или сделать так, как вы предлагаете пакет, и развернуть родителя.

0
Parent 1.0-SNAPSHOT 
     +common 1.0-SNAPSHOT 
     +webapp 1.0-SNAPSHOT 
  1. Вы должны использовать версию снимка в родительском и повторно использовать ту же версию в обоих модулей.
  2. Вы должны импортировать каждый модуль в затмении
  3. Вы должны запустить MVN чистую установку от родительского

Если вы сделаете все это, Eclipse распознает, когда есть зависимость «WebApp» проект «общий» проект , Eclipse берет «общий» проект в пути сборки проекта «webapp». Любые изменения в «общем» видны «webapp».