Diferencia entre revisiones de «Manual de Maven»
Línea 28: | Línea 28: | ||
== Modificar el Path en Ubuntu == | == Modificar el Path en Ubuntu == | ||
− | >export PATH=/usr/local/apache-maven-3.1.1/bin:$PATH | + | ''>export PATH=/usr/local/apache-maven-3.1.1/bin:$PATH'' |
Una vez hecho ésto en cualquiera de los 2 sistemas, podemos comprobar que está correctamente configurado abriendo una consola y ejecutar, en cualquier ruta, el comando: | Una vez hecho ésto en cualquiera de los 2 sistemas, podemos comprobar que está correctamente configurado abriendo una consola y ejecutar, en cualquier ruta, el comando: |
Revisión del 12:15 12 nov 2013
Contenido
0. ¿Qué es Maven?
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 la ruta del ejecutable de Maven (será la carpeta bin dentro de la carpeta en la que hayamos descomprimido el paquete de maven) a la ruta de ejecución del Sistema (el PATH).
Modificar el Path en Windows
Modificar el Path en Ubuntu
>export PATH=/usr/local/apache-maven-3.1.1/bin:$PATH
Una vez hecho ésto en cualquiera de los 2 sistemas, podemos comprobar que está correctamente configurado abriendo una consola y ejecutar, 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:
- 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 test: Se compilan las clases y se lanzan los tests de junit.
- mvn package: Se compilan las clases, se lanzan los tests y se genera un entregable de nuestro artefacto (por defecto un .jar)
- 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.
Pruebas con maven
La estructura de ficheros de un proyecto maven incluye una carpeta test para incluir el código de los tests (que estará separado del código propio de la aplicación). Para software desarrollado en java es común usar el framework junit para las pruebas unitarias.
JUnit
JUnit es un framework java consistente de varias librerías que permiten realizar pruebas sobre clases Java. Las pruebas se realizarán mediante clases que incluirán los casos de prueba que queramos hacer. Cada cada paso de prueba se realizará mediante un método que incluya asertos lógicos.
Ejemplo de caso de test:
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:
Añadir un repositorio remoto al proyecto:
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.
3. Usando Maven con Eclipse
Existen herramientas que permiten utilizar Maven desde entornos de desarrollo, como Eclipse. En Eclipse, la extensión más usada (y aceptada por Maven) es el plugin de Eclipse (The Maven Integration for Eclipse (m2eclipse, Eclipse m2e), que permite editar el fichero de pom mediante un asistente o bien ejecutar los comandos de maven desde el IDE.