Одномодульный против мультимодульного проекта Maven
Я создаю новый веб-проект Java. В этом веб-приложении будет много модулей, таких как ядро / общие ресурсы, бизнес-сервис, репозиторий, безопасность, интеграция, ldap, управление пользователями,... Интересно, стоит ли разделять каждый модуль на каждый проект maven (файл jar) или создавать проект? которые включают все Java-пакеты всех модулей в один проект Maven.
Structure of Multi modules maven project
mycompany-core
mycompany-repository
mycompany-api
mycompany-usermanagement
mycompany-business
mycompany-web
Structure of Single module project:
mycompany-web
|___ src
|____ main
|____ java
|____ com.mycompany.core
|____ com.mycompany.repository
|____ com.mycompany.business
|____ com.mycompany.controller
Когда мы должны применять многомодульный или одномодульный проект> Пожалуйста, дайте мне несколько советов.
2 ответа
Все продукты, над которыми я работал в Maven, были многомодульными. Это потому, что они, как правило, были большими. Однако, когда я создаю свои собственные проекты для домашних животных, они, как правило, являются одномодульными.
Как правило, по мере роста продуктов их необходимо будет объединять в несколько модулей. Некоторые проекты начинаются как единый модуль и разделяются по мере роста. Другие, созданные разработчиками с большим опытом, уже разделены, потому что разработчики уже знают, как будет расти код и как его нужно организовывать.
В частности, из вашего списка, "ядро / общие ресурсы, бизнес-сервис, хранилище, безопасность, интеграция, ldap, управление пользователями", я бы выделил "общие ресурсы" в свой собственный модуль, потому что он пахнет так, как если бы его можно было использовать в других проектах. Все остальные части могли бы поместиться в один модуль, но мне нужно больше узнать о проекте.
Это зависит от вашего требования. Если вы хотите запустить это с помощью .sh
или же .bat
у вас должна быть одна цель (одна jar
с другими библиотеками).
Если ваш проект построен как API
Лучше иметь свою сборку как многомодульную.