Как настроить мультипроектную структуру с Maven?

Я довольно неопытный и совершенно новый для всего мира инструментов сборки, поэтому вот моя ситуация: я разрабатываю веб-приложение с JSF, PrimeFaces и Hibernate для wildfly-9.0.2-final. Все java-файлы (включая ManagedBeans, DAOs, классы Model и т. Д.) В настоящее время находятся в обычном java-проекте eclipse под названием MyApp-CORE. В этом проекте нет html или каких-либо других ресурсов, но все сторонние библиотеки, такие как PrimeFaces, commons-xy и т. Д. Затем я получил два динамических веб-проекта со всеми файлами.xhtml и прочим. Оба веб-проекта включают CORE в свой путь сборки (все это делается с помощью встроенных инструментов eclipse). В основном я следовал Структуре для нескольких проектов JSF с общим кодом. Все проекты созданы с использованием Git. Теперь я спрашивал себя, как все это придумать, а также как правильно включать тесты. Окончательный результат должен быть:

  1. Мне нужен файл сборки для каждого веб-проекта, который включает в себя зависимость CORE и все ее транзитивные зависимости, создает файл.war и развертывает его либо в производственной системе, либо локально (в зависимости от некоторых параметров, которые я хочу поддерживать).
  2. Этот сборочный файл может, например, протестировать и собрать CORE, а затем файл.war.
  3. Поскольку я использую JSF, в основном единственным вариантом для тестирования является JSFUnit. Должен ли я тестировать каждый веб-проект по отдельности и помещать туда все тестовые примеры (которые были бы в значительной степени избыточными, поскольку они в основном одинаковы, отличаются только некоторые функции), или мне лучше создать отдельный веб-проект под названием MyApp-TEST, который тестирует CORE.jar, а также - в зависимости от конфигурации - каждый веб-проект.

Я уже создал структуру, которая позволяет включать ядро ​​в веб-проект, но, к сожалению, я теряю преимущества горячего развертывания в wildfly, когда просто включаю его в качестве зависимости от моего локального репозитория maven. Итак, подведем итог:

  • Что было бы лучше для этой установки, что в конечном итоге привело бы к сценарию непрерывной интеграции?
  • Как включить тестовые примеры (полные интеграционные тесты, которые проверяют фактическое поведение пользовательского интерфейса)?
  • Какой инструмент (Maven, Gradle, Ant и т. Д.) Подойдет для этой задачи?
  • Продолжать использовать горячее развертывание для гладкой разработки?

Заранее спасибо за любые комментарии, советы или поделился опытом!

0 ответов

Другие вопросы по тегам