Cómo hacer multimodule en Spring Boot
Contenido
¿Quieres tener varios módulos, cada uno con su propio pom, properties y swagger? Te cuento el procedimiento que seguí y que puede ayudarte.
Cómo hacer multimodule en Spring Boot
-
Es posible organizar módulos dentro de un proyecto spring boot, cada uno con su propio pom.xml, su propio application.properties y su propio swagger.
-
Referencia: Getting Started | Creating a Multi Module Project
-
Demo: akobashikawa/springboot-multimodule: Ejemplo Spring Boot Multimodule
Módulos
gs-multi-module
| pom.xml
└── library
| pom.xml
| application.properties
└── application
| pom.xml
| application.properties
└── applicationdos
pom.xml
application.properties
library
produce un jar pero no es una aplicaciónapplication
tiene alibrary
como dependenciaapplicationdos
tiene alibrary
como dependencia
Build
mvn clean install
Run
mvn spring-boot:run -pl application
- http://localhost:8081/application/home
- http://localhost:8081/application/swagger-ui/index.html
mvn spring-boot:run -pl applicationdos
- http://localhost:8082/applicationdos/home
- http://localhost:8082/applicationdos/swagger-ui/index.html
Notas
pom.xml
- El
pom.xml
del root puede incluir dependencias comunes. Pero también se puede insistir en declarar cada dependencia en cada módulo, lo que puede ser util si se quiere facilitar luego su separación como microservicio.
application.properties
library
usa unapplication.properties
local y cada módulo que lo usa tiene que sobrescribir una copia de sus propiedades.
Swagger
- Aunque la documentación indica que es posible algo como
springdoc.swagger-ui.path=/applicationdos-swagger-ui
, encontré que no, y que lo posible esspringdoc.swagger-ui.path=/applicationdos/swagger-ui