Skip to content

lg5-spring-parent ​

lg5-spring-parent es el BOM (Bill of Materials) central del framework. Es el módulo más importante porque define las versiones de todas las demás librerías y configura los plugins de Maven para todos los servicios.

Propósito ​

Genera un POM Parent que los microservicios heredan para obtener:

  • Versiones de dependencias centralizadas
  • Plugin management (compiler, surefire, failsafe, jacoco, checkstyle)
  • Perfiles de Docker (amd64/arm64)
  • Repositorios adicionales (Confluent Maven)

Configuración Técnica ​

Build Configuration ​

lg5-spring-parent/build.gradle.kts:

kotlin
subprojects {
    publishing {
        publications {
            create<MavenPublication>("parentJava") {
                from(components["java"])
                pom.packaging = "pom"
            }
        }
    }
}

Plugins Configurados ​

PluginVersiónPropósito
maven-compiler-plugin3.13.0Java 21, MapStruct + Lombok
maven-surefire-plugin3.5.2Unit tests
maven-failsafe-plugin3.5.2IT tests + acceptance tests
jacoco-maven-plugin0.8.12Code coverage
maven-checkstyle-plugin3.6.0Google Java Style
avro-maven-plugin1.12.0Avro codegen
jib-maven-plugin3.5.1Multi-arch Docker
spring-boot-maven-plugin3.5.14Build image
depgraph-maven-plugin4.0.3Dependency graph

Perfiles de Docker ​

xml
<!-- amd (default) -->
<profile>
    <id>amd</id>
    <properties>
        <os.arch>amd64</os.arch>
        <os.family>linux</os.family>
        <digest-amd>sha256:...</digest-amd>
    </properties>
</profile>

<!-- arm64 -->
<profile>
    <id>arch-aarch64</id>
    <properties>
        <os.arch>aarch64</os.arch>
        <os.family>linux</os.family>
        <digest-arm>sha256:...</digest-arm>
    </properties>
</profile>

Repositorios Configurados ​

xml
<repositories>
    <repository>
        <id>confluent</id>
        <url>https://packages.confluent.io/maven</url>
    </repository>
</repositories>

Uso en un Microservicio ​

xml
<parent>
    <groupId>com.lg5.spring</groupId>
    <artifactId>lg5-spring-parent</artifactId>
    <version>1.0.0-alpha.6ff1b95</version>
</parent>

Qué Heredas del Parent POM ​

  1. Spring Boot Parent como parent POM
  2. Plugins preconfigurados
  3. Perfiles Docker (amd64, arm64)
  4. Repositorio Confluent
  5. Properties configurados

Released under the MIT License.