Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

Blog de Julio César Pérez Arques

Chuleta Maven

Agosto 5th, 2009 - [Enlace local]

UPDATE 20100126: Añadido cómo configurar el máximo de memoria heap



A continuación una chuleta con buena parte de lo que llevo aprendido usando Maven estos dos últimos meses más algunas referencias.



> 1. CREAR PROYECTOS



Crear un proyecto jar


$ mvn archetype:create -DgroupId=com.example -DartifactId=example-jar-project



Crear un proyecto war

$ mvn archetype:create -DarchetypeartifactId=maven-archetype-webapp -DgroupId=com.example -DartifactId=example-war-project





> 2. ECLIPSE



Configurar plugin eclipse para descargar fuentes y javadocs de las dependencias




<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-eclipse-plugin</artifactId>

<!-- Ojo, la versión 2.6 tiene bugs con AJDT -->

<version>2.5</version>

<configuration>

<downloadSources>true</downloadSources>

<downloadJavadocs>true</downloadJavadocs>

</configuration>

</plugin>



Crear variable M2_REPO

Ir a Window -> Preferences -> Java -> Build path -> Classpath variable -> New

Name: M2_REPO

Path: /ruta/a/tu/.m2/repository



Generar ficheros de configuración de un proyecto jar Eclipse

$ mvn eclipse:eclipse



Generar ficheros de configuración de un proyecto war Eclipse

$ mvn eclipse:eclipse -Dwtpversion=1.5



Cargar un proyecto en Eclipse

Ir a File -> Import -> General -> Existing project into Workspace -> Select root directory



Borrar ficheros de configuración proyecto Eclipse

$ mvn eclipse:clean



Ahora más que nunca, se recomienda no subir a CVS o similar los ficheros de configuración del proyecto en el IDE.







> 3. CONFIGURACIÓN DE PLUGINS MÁS COMUNES



Configurar un plugin para este pom y sus hijos


En build -> pluginManagement -> plugins



Configurar un plugin sólo para este pom

En build -> plugins



Configurar encoding y versión java de compilación



<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>2.0.2</version>

<configuration>

<encoding>UTF-8</encoding>

<source>1.4</source>

<target>1.4</target>

</configuration>

</plugin>



Configurar plugin surefire para ignorar fallos de tests, definir patrones de nombres de tests aceptados y configurar propiedades de sistema (locale) durante la ejecución de los tests



<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.4.3</version>

<configuration>

<testFailureIgnore>true</testFailureIgnore>

<includes>

<include>**/*Test.java</include>

<include>**/*Tests.java</include>

</includes>

<systemProperties>

<property>

<name>user.language</name>

<value>es</value>

</property>

<property>

<name>user.country</name>

<value>ES</value>

</property>

</systemProperties>

</configuration>

</plugin>





> 4. COMANDOS ÚTILES EN EL DÍA A DÍA



Borrar carpeta de construcción


$ mvn clean



Ejecutar tests

$ mvn test



Construir proyecto

$ mvn package



Instalar proyecto en tu repositorio local

$ mvn install



Instalar (desplegar) proyecto en el repositorio de la organización (necesita configuración)

$ mvn deploy



Ejecutar Maven saltándose los tests (unitarios e integración)

$ mvn xxxxxxx -Dmaven.test.skip=true



Mostrar el stacktrace de excepción

$ mvn xxxxxxx -e



Mostrar información de debug

$ mvn xxxxxxx -X



Instalar una libreria de terceros en tu repositorio local

mvn install:install-file -Dfile=ruta/a/fichero/jar -DgroupId=com.example -DartifactId=nombre_libreria -Dversion=x.y.z -Dpackaging=jar



Instalar (desplegar) una libreria de terceros en el repositorio de la organización (necesita configuración)

$ mvn deploy:deploy-file -Dfile=ruta/a/fichero/jar -DrepositoryId=id_repositorio -Durl=url_repositorio -DgroupId=com.example -DartifactId=nombre_libreria -Dversion=x.y.z -Dpackaging=jar



Ver pom efectivo (suma de poms padres)

$ mvn help:effective-pom



Ejecutar Maven en modo offline

$ mvn xxxxxxx -o



Preparar Maven para poder ejecutarse en modo offline

$ mvn dependency:go-offline



Ejecutar Maven con máximo de memoria heap configurable (ejemplo con 512m)

$ mvn xxxxxxx -DXmx512m

o editar la variable de sistema MAVEN_OPTS=-Xmx512m





> 5. DEPENDENCIAS



Ver jerarquía de dependencias


$ mvn dependency:tree



Ver dependencias en orden alfabético

$ mvn dependency:resolve



Analizar uso de dependencias

$ mvn dependency:analyze







> 6. RECURSOS



Ciclos de vida


http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html



Estructura estándar de carpetas

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html



Propiedades

http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide



Pom

http://maven.apache.org/ref/2.2.1/maven-model/maven.html



Plugins más comunes

http://maven.apache.org/plugins/index.html



Documentación oficial

http://maven.apache.org/guides/index.html



Libro gratuito: Maven La Guía Definitiva

http://www.sonatype.com/books/maven-book/reference/



Gestor de repositorios Nexus

http://nexus.sonatype.org/index.html

» Leer más, comentarios, etc...

Información legal y técnica