Как можно организовать Maven-монорепозиторий, включающий клиентский и серверный проекты?

На момент написания этого вопроса, я уже мыслил категориями "Архитектура проекта", "Сильная связанность" и т. д., однако опыта написания реальных проектов конкретно на Java у меня пока было, поэтому если я буду говорить абсурдные вещи с точки зрения Java или Maven - пожалуйста, разъясните их.

Итак, помещать клиентскую часть и серверную часть в один проект удобно прежде всего потому, что можно использовать единую бизнес-логику (если и клиент, и сервер написаны на одном языке, что в случае с Java возможно). Не вдаваясь в то, какую структуру проекта предлагают Java и maven, я представляю себе это так:

введите сюда описание изображения

Теперь и проект серверной части 01-Server, и проект клиентской части 02-Client могут ссылаться на общую бизнес-логику 00-CommonBusinessLogic, которая не зависит ни от каких фреймворков и библиотек, но при этом тестируема (тесты будут в 00-CommonBusinessLogic/Test). Точка входа в серверное приложение - 01-Server/EntryPoint.java, точка запуска клиента - 02-Client/EntryPoint.java.

Теперь пример maven-проекта по умолчанию, который предлагает IntellIJ IDEA:

введите сюда описание изображения

Я пока не знаю ВСЕХ ограничений, которые накладывает Java на организацию папок, но хочется вообще убрать src со всем содержимым. Так или иначе, вопрос мой такой: насколько возможно приблизить структуру проекта на втором скриншоте к структуре проекта на первом скриншоте? Если понадобятся какие-то специфические настроки maven, то прошу Вас привести фрагмент pom.xml.


Ответы (0 шт):