Spring Multimódulo
Spring Multimódulo
Se crea un proyecto rest multimódulo rest con spring.
Configuracion maven
- Creamos un proyecto maven multimodulo con spring
- Configuración de módulos
Maven multimódulo
1
2
3
4
5
6
7
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>3.4.3</spring-boot.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
Configuración de dependencias spring boot
1
2
3
4
5
6
7
8
9
10
11
12
<!-- Gestión de dependencias centralizada -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Configuración del plugin de compilación maven
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.spring.modulith.Main</mainClass>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Configuración dependencias comunes para todos los módulos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- Dependencias comunes para los módulos -->
<dependencies>
<!-- Lombok para reducir boilerplate -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- Dependencias para tests: incluye JUnit Jupiter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Definición de los módulos
1
2
3
4
5
6
7
<!-- Definición de módulos hijos -->
<modules>
<module>common-lib</module>
<module>order-module</module>
<module>payment-module</module>
<module>main-module</module>
</modules>
Configuración de módulos
Módulo Main añadimos la dependencia de spring
1
2
3
4
5
6
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Configuramos un módulo Main para arrancar (Revisar la configuración spring-boot-maven-plugin )
1
2
3
4
5
6
7
8
9
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
Referencias
This post is licensed under
CC BY 4.0
by the author.