Plugins y goals de Maven
Personalice la compilación
Plugins y goals de Maven es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.
Plugins y goals de Maven
Maven por sí solo hace casi nada: todo el trabajo real lo realizan los plugins. Un plugin aporta goals, y estos se asocian a fases del ciclo de vida. En esta lección se muestra cómo personalizar una compilación mediante plugins.
Plugins frente a goals
Un plugin es un conjunto empaquetado de capacidades relacionadas. Un goal es una tarea específica dentro de un plugin. Por ejemplo, el Compiler Plugin proporciona los goals compile y testCompile.
Coordenadas de un goal
Puede invocar un goal directamente con la forma plugin:goal. Por ejemplo, mvn compiler:compile o mvn surefire:test. Normalmente, los goals se ejecutan automáticamente porque están asociados a fases.
Asociaciones con fases
El tipo de empaquetado predeterminado asocia de antemano plugins estándar a las fases. En un proyecto jar, el goal compile del Compiler Plugin se asocia a la fase compile, y el goal test del Surefire Plugin se asocia a test; por eso mvn test funciona sin más.
Configurar el compilador
Configure un plugin dentro de <build><plugins>. Aquí establecemos el nivel de release de Java para que el compilador genere como destino una versión específica.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>21</release>
</configuration>
</plugin>
</plugins>
</build>El Surefire Plugin
Surefire ejecuta las pruebas unitarias durante la fase test. Puede configurar qué pruebas incluir, el paralelismo y los argumentos de la JVM. Su plugin hermano, Failsafe, ejecuta las pruebas de integración durante la fase verify.
Asociar una ejecución adicional
Un bloque <execution> asocia explícitamente un goal a una fase, y puede incluir su propia configuración. Así se añade trabajo adicional, como generar código antes de la compilación.
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>print-banner</id>
<phase>generate-sources</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>Crear un fat JAR
El JAR predeterminado no incluye las dependencias. El plugin Shade (o el plugin Assembly) agrupa todo en un único uber-jar ejecutable y asocia su goal a la fase package.
El Exec Plugin
El plugin Exec permite ejecutar la aplicación desde Maven mediante mvn exec:java, especificando la clase principal. Resulta práctico para ejecuciones rápidas sin empaquetar.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.App</mainClass>
</configuration>
</plugin>Gestión de plugins
En una compilación multimódulo, <pluginManagement> en el POM principal fija las versiones de los plugins y la configuración compartida. Los módulos secundarios hacen referencia al plugin sin repetir la versión, lo que mantiene la coherencia de las compilaciones.
Descubrir la configuración
Use mvn help:describe -Dplugin=compiler para enumerar los goals y parámetros de un plugin. Es la forma más rápida de descubrir qué opciones ofrece un plugin sin salir del terminal.
Comprobación rápida
Compruebe su comprensión de los plugins y los goals.
Resumen
Ha aprendido cómo funcionan los plugins de Maven:
- Todo el trabajo real de compilación lo realizan los plugins, que aportan goals.
- Los goals están asociados a fases del ciclo de vida, por lo que las fases estándar funcionan sin configuración adicional.
- Configure los plugins en
<build><plugins>y añada ejecuciones para asociaciones adicionales. - Shade y Assembly crean fat JARs; Exec ejecuta la aplicación; Surefire y Failsafe ejecutan pruebas.
mvn help:describemuestra los goals y parámetros de un plugin.
Preguntas frecuentes
¿La lección «Plugins y goals de Maven» es gratis?
Sí — el texto completo de «Plugins y goals de Maven» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Plugins y goals de Maven»?
Personalice la compilación Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Plugins y goals de Maven»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estructura de un proyecto Maven
- Plugins y goals de Maven
- Conceptos básicos de Gradle
- Elección de una herramienta de compilación