Diferencia entre revisiones de «Manual de Maven»

De Wiki de EGC
Saltar a: navegación, buscar
Línea 93: Línea 93:
  
 
[[Archivo:RepositorioLocalMaven.png]]
 
[[Archivo:RepositorioLocalMaven.png]]
 +
 +
= 3. Usando Maven con Eclipse =

Revisión del 22:09 11 nov 2013

0. ¿Qué es Maven?

http://maven.apache.org

Es una herramienta de código abierto (de la fundación Apache) para asistir en la construcción de proyectos software JAVA. Entre otras cosas:

  • Gestión sencilla de la construcción
  • Gestión de las dependencias de código.
  • Da soporte a buenas prácticas en el desarrollo (separar código fuente de código de testing, soporte de diferentes hitos en el ciclo de vida del desarrollo, etc).
  • Se puede extender con funcionalidad externa mediante plugins.
  • Soporta la integración con múltiples entornos de desarrollo (Eclipse, Netbeans, ...).


1. Instalación

Prerrequisitos: Máquina virtual de Java.

Maven es una herramienta java de consola que se puede descargar de:

http://maven.apache.org/download.cgi (versión 11/11/2013: 3.11)

La instalación de Maven consiste en descomprimir el paquete de archivos en una carpeta del disco (p.e. C:\apache-maven-3.1.1) y añadir el ejecutable de Maven a la ruta de Ejecución del Sistema.

Windows

PathWindows.png

Ubuntu

Una vez hecho ésto, podemos comprobar que está correctamente configurado ejecutando en una consola, en cualquier ruta, el comando:

>mvn --version

2. Uso básico de Maven

Creando un proyecto

Para crear un proyecto un proyecto maven, ejecutamos el comando

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

donde:

  • archetype: plugin que indica a maven con qué tipo de estructura tiene que crear
  • groupId: grupo al que queremos que pertenezca nuestro artefacto
  • artifactId: nombre de nuestra aplicación o artefacto

Este comando crea una estructura de directorios estándard de maven. Esto es:

EstructuraFichero.png


  • src: fuentes y ficheros de configuración del proyecto
  • test: fuentes de pruebas, clases de test de junit
  • Aparecerán más como:
  • target: guarda las clases compiladas, los jars, etc

resources, config, webapp, site, …

  • Identificamos el ‘artifactId’ el ‘groupId’ así como el fichero ‘pom.xml

Ese fichero pom.xml (POM - Project Object Model), es el fichero de configuración de la construcción de nuestro proyecto. Al abrir el fichero, encontramos las entradas correspondientes a información general del proyecto (como el groupId o el artifactId), configuraciones personalizadas para cada etapa del ciclo de vida, dependencias, configuración de repositorios, inserción de Plugins, etc

Comandos de Maven

Maven tiene predefinidas una serie de actividades o comandos relacionados con el ciclo de vida de desarrollo de un proyecto. Los comandos tienen que ejecutarse desde la carpeta raiz del proyecto. Entre los principales comandos están:

  • mvn compile: Para compilar los ficheros .java en .class
  • mvn package: Para generar el entregable de nuestro artefacto (por defecto un .jar)
  • mvn test: Se genera el artefacto y se lanzan los tests de junit.
  • mvn install: Genera el artefacto, lanza los tests y lo instala en el repositorio local de maven.
  • mvn deploy: Despliega el artefacto en un repositorio remoto.

Existen muchas otros comandos/actividades. Estas actividades siguen una secuencia de ejecución, es decir, la ejecución de un comando incluye la ejecución de todos los comandos anteriores de la secuencia.

MavenWorkflow.png

Repositorio Local y dependencias

En el fichero pom.xml encontramos una sección de dependencias. En esta sección podemos incluir cualquier artefacto maven que queramos utilizar en nuestro proyecto, de manera que la gestión de dicha dependencia es automatizada por maven. Para ello, Maven mantiene un carpeta en la máquina local (normalmente asociada al usuario), llamada Repositorio Local, en la que busca el artefacto indicado en las dependencias. Si no encuentra el artefacto en el repositorio local, lo busca en repositorios remotos. Los repositorios remotos son urls de las que maven puede descargarse artefactos.

Existen repositorios remotos propios de maven (que ya vienen configurados en la instalación de maven) en los que ya están dados de alta numerosos proyectos opensource. En cambio, habrá proyectos que aunque estén construidos con maven no estén dados de alta en los repositorios remotos estándard, están en un repositorio remoto propio de la compañía. En este caso, habrá que aañdir la url del repositorio a nuestro pom.xml.

Añadir una dependencia en proyecto maven:

DependenciasMaven.png

Añadir un repositorio remoto al proyecto:

RepositorioMavenManual.png

En cualquier caso, el repositorio local actúa de caché. Esto es, si el artefacto no está disponible en el repositorio local y maven tiene que descargárselo de un remositorio remoto, antes de usarlo, lo instala en el repositorio local, de manera que no tiene que volver a descargar de nuevo ese artefacto.

RepositorioLocalMaven.png

3. Usando Maven con Eclipse