Maven clean plugin

Cuando trabajamos con Maven en muchas ocasiones necesitamos agregar y configurar complementos(plugins) al archivo pom y usarlos para realizar tareas de compilación esenciales. Maven tiene una arquitectura de plugins y, a excepción de las funcionalidades principales, todas las tareas en Maven se realizan mediante plugins. En este artículo nos centraremos en Maven clean plugin.

Cuando se construye un proyecto, es importante asegurarse de que no se vea afectado negativamente por artefactos de una construcción anterior. Por lo general, las herramientas de compilación generan artefactos en una carpeta bien definida llamada target, denominada directorio de trabajo del proyecto. Antes de una nueva compilación, esta carpeta generalmente se elimina.

Cuando se invoca la fase clean, Maven infiere automáticamente que se invoca el ciclo de vida de limpieza(clean lifecycle). Para ello utiliza el plugin Maven Clean. El plugin tiene un solo goal clean, este limpia el directorio de trabajo que ya vimos que se llama target.

Cómo clean es un ciclo de vida separado del ciclo de vida predeterminado(default), clean debe llamarse explícitamente antes del ciclo de vida predeterminado(default) si necesita asegurarse de que se elimine el directorio de trabajo.

Maven clean plugin en la práctica

Veamos en la práctica cómo trabajar con el plugin maven-clean-plugin. Para ello vamos a crear un proyecto nuevo con el siguiente comando:

				
					mvn archetype:generate -DgroupId=com.josemtech.maven -DartifactId=mi-proyecto -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
				
			

Para poder ejecutar el código anterior necesitamos tener instalado Maven en nuestra computadora y además tener bien configuradas las variables de entorno para que se reconozca el comando mvn.

Si tenemos todos estos requisitos y ejecutamos el comando anterior, deberíamos ver una salida similar a la siguiente:

Si nos desplazamos dentro de la carpeta del proyecto observaremos como no existe la carpeta target. Para generar los artefactos de este proyecto y que aparezca la carpeta target vamos a ejecutar mvn package.

Ahora se ha generado el directorio target como se observa a continuación:

Ahora ya podemos ejecutar el comando mvn clean y veamos cómo este elimina la carpeta target del proyecto. Deberíamos ver en el terminal el siguiente resultado:

Para este punto ya no deberíamos tener la carpeta target en la carpeta de nuestro proyecto:

Podría darse el caso de que desearamos que cada vez que construyamos nuestro proyecto deseemos asegurarnos que se borre la carpeta target antes de construir el proyecto. Veamos a continuación cómo podemos ejecutar automáticamente el plugin clean durante la compilación del proyecto.

Ejecutar el plugin clean automáticamente

Para poder ejecutar el plugin clean automáticamente durante la compilación del proyecto necesitamos definir el plugin con algunos parámetros en nuestro archivo pom. Veamos la forma en que podemos agregarlo:

Apache Maven: Construcción de proyectos de cero a avanzado

Aprenda a construir sus aplicaciones Java y Scala de forma sencilla y siguiendo las mejores prácticas de desarrollo

				
					<build>
	<plugins>
		<plugin>
		<artifactId>maven-clean-plugin</artifactId>
		<version>3.1.0</version>
		<executions>
			<execution>
			<id>auto-clean</id>
			<phase>initialize</phase>
			<goals>
				<goal>clean</goal>
			</goals>
			</execution>
		</executions>
		</plugin>
	</plugins>
</build>

				
			

Ahora ejecutaremos de nuevo el comando mvn package. Lo que hemos hecho es solicitarle a Maven que ejecute el goal clean durante la fase de inicialización del proyecto. Además podemos identificar esta ejecución con el id auto-clean como se muestra a continuación:

Eliminar carpetas adicionales con maven clean plugin

Sería de mucha utilidad que pudiéramos eliminar carpetas adicionales, es decir, otras carpetas que no sean la carpeta target durante la ejecución del plugin clean, veamos cómo podemos lograr esto.

Para poder eliminar carpetas además de la carpeta target debemos incluir las siguientes líneas en el pom:

				
					<plugin>
	<artifactId>maven-clean-plugin</artifactId>
	<version>3.1.0</version>
	<configuration>
		<filesets>
			<fileset>
				<directory>${basedir}/borrar</directory>
			</fileset>
		</filesets>
	</configuration>
</plugin>

				
			

Creemos una carpeta llamada borrar dentro de nuestro proyecto y lo que deseamos es que cuando se ejecute el plugin clean se borre también esta carpeta.

Apache Maven: Construcción de proyectos de cero a avanzado

Aprenda a construir sus aplicaciones Java y Scala de forma sencilla y siguiendo las mejores prácticas de desarrollo

Ejecutamos nuevamente el comando mvn package y deberíamos ver un resultado como el siguiente en nuestro terminal:

Observemos cómo se han borrado las carpetas target y borrar cuando hemos realizado un mvn package, debemos recordar que esto sucede porque estamos ejecutando el plugin en la fase de inicialización.

Entradas creadas 26

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones relacionadas

Comienza escribiendo tu búsqueda y pulsa enter para buscar. Presiona ESC para cancelar.

Volver arriba