Objetivo del tema
En este tema repasarás herramientas que potencian el uso de Apache Maven: integración con IDEs, uso de Maven Wrapper, despliegues con Docker y Kubernetes, empaquetado con Maven Shade Plugin y análisis estático con SonarQube.
Los IDEs modernos detectan proyectos Maven de forma nativa, sincronizan dependencias y exponen los objetivos más utilizados.
Maven Wrapper garantiza que cada desarrollador utilice la misma versión de Maven sin instalarla globalmente. Genera scripts mvnw
y un directorio .mvn
con metadatos de versión.
mvn -N io.takari:maven:wrapper -Dmaven=3.9.6
./mvnw clean verify
(Linux/macOS) o mvnw.cmd
(Windows) para usar la versión fijada..mvn/wrapper
al repositorio para compartir la configuración con todo el equipo.Maven se combina con Docker para crear imágenes a partir de los artefactos generados y desplegarlos en plataformas como Kubernetes.
El Maven Shade Plugin empaqueta dependencias en un JAR único, ideal para servicios que se ejecutan con java -jar
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.ejemplo.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
target/<artifactId>-<version>-shaded.jar
.Integrar el escáner de SonarQube con Maven permite evaluar calidad, cobertura y vulnerabilidades.
mvn -B clean verify sonar:sonar \
-Dsonar.host.url=https://sonarqube.miempresa.com \
-Dsonar.login=$SONAR_TOKEN
sonar-maven-plugin
en pom.xml
o ejecútalo mediante perfiles dedicados a CI.El ecosistema de Maven ofrece herramientas para asegurar consistencia entre IDEs, compartir la versión del build, orquestar despliegues con Docker y Kubernetes, generar JAR ejecutables y aplicar controles de calidad con SonarQube. Incorporar estas extensiones potencia la productividad y mantiene la calidad del software entregado.