Решение о разделении проекта на модули должно зависеть от того, как вы хотите проектировать и поддерживать свое приложение. Сам Maven будет хорошо работать, независимо от того, решите ли вы создать многомодульный проект или объединить все в один модуль. Тогда возникает вопрос: каковы преимущества / недостатки разделения вашего приложения на несколько модулей?
Некоторые драйверы для разделения вашего приложения являются чисто техническими:
- Генерация отдельных клиентских и серверных артефактов
- Генерация версии командной строки и версии веб-приложения
- Отношения зависимостей модуля
В других случаях это больше проблем, связанных с дизайном, заставит вас разделить ваше приложение. Это особенно важно, если ваша задача - приложение, которое со временем будет расти. В этих случаях вы хотите разделить свое приложение на конкретные проблемные области и определить границы служб, через которые взаимодействуют модули. Это позволяет со временем эволюционировать отдельные модули, сводя к минимуму влияние на остальные части приложения.
Обратите внимание, что maven особенно хорош для больших многомодульных проектов, поскольку он поддерживает управление зависимостями и их разрешение.