Я начинаю проект Spring, который должен состоять из четырех основных модулей:
Возможно ли это или я должен разделить проект на два проекта Spring Boot с общей библиотекой? Могу ли я настроить сборку, в которой модули администратора и клиента построены как файлы .war, и запустить ее с помощью SpringBootApplication в веб-модуле?
Модули клиента и администратора не обязательно должны находиться на одном и том же порту. Единственное, что важно, это запустить его в одно и то же время.
Ниже представлена структура моего текущего проекта.
/project-root
-pom.xml (pom packaging defined; modules: core, web-admin, web-customer)
/core
-src (contains service and repository classes)
-pom.xml (jar packaging)
/web-admin
-src (contains controllers and security configuration for admin portal)
-pom.xml (jar packaging for now; dependency on core)
/web-customer
-src (contains controllers and security configuration for customers)
-pom.xml (jar for now; dependency on core)
/web
-src (should contain SpringBootApplication to run all the modules)




Конечно, это возможно. Вам просто нужно обратить внимание на пару вещей:
baseScanPackages;Например:
/core
com.example.app.core <--- All the core classes would be on this package
/web-admin
com.example.app.admin <--- All the admin classes would be on this package
/web-customer
com.example.app.customer <--- All the customer classes would be on this package
/web
com.example.app <--- The SpringBootApplication class should be at this levelCan I maybe configure a build in which Admin and Customer modules are built as .war files and run it with SpringBootApplication in Web module?
Вам не нужно упаковывать модуль администратора и клиента в виде war файлов, jar упаковка идеальна.
Customer and Admin modules don't have to be on the same port.
Это жесткое требование? Если да, то вам лучше написать 2 разных приложения. В противном случае ко всем API можно получить доступ через один и тот же порт.
Ну, я просто забыл добавить зависимости от модулей администратора и клиента в основной модуль с SpringBootApplication - большое спасибо!
Это может помочь: baeldung.com/maven-мультимодуль