Contenido

Cómo hacer multimodule en Spring Boot

¿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

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ón
  • application tiene a library como dependencia
  • applicationdos tiene a library 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 un application.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 es springdoc.swagger-ui.path=/applicationdos/swagger-ui