Tutorial Maven EmeDe
Tutorial Maven EmeDe
Tutorial Maven EmeDe
Maven
Requisitos
Maven (http://maven.apache.org/download.html)
Que es Maven?
Es una framework de Gestion de Proyectos de Software Es una herramienta de lnea de comandos la cual nos ayuda a realizar tareas rutinarias como el crear la estructura de nuestro proyecto, borrar los .class, compilar, generar la documentacin de javadoc, crear el jar, descargar y agregar las dependencias que necesite, etc. Esto nos evita tener que estar creando scripts o archivos .bat que realicen estas tarea, o nos evitan tener que usar un programa como Ant (este no agrega dependencias). Maven nos permite hacer esto de manera simple y baja los jar de internet y los agrega al proyecto si se lo indicamos en un arquetipo (estructura predefinida llamada pom.xml). Se puede encargar de la documentacion web con montones de informes (mtricas, cdigo duplicado, etc) y de los test. Ademas genera un zip de distribucin en el que van todos los jar necesarios y ficheros de configuracin de nuestro proyecto. Nota: Maven necesita conexion a Internet la primera vez que se usa para bajar unas cosas.
Instalacion de Maven
Descomprimir Maven en un directorio de nuestra pc. Agregar la ruta (donde descomprimimos maven) a la variable de entorno path Comprobar en MS-DOS (line command) que reconosca el comando:
mvn version y $ mvn version
+---test
+---emede +---soft +---App.java +---java +---emede +---soft +---AppTest.java //Para test de Junit
+---pom.xml
El pom.xml es donde se guarda la configuracin del proyecto, como dependencias (libreras jar), informes que queremos en las paginas web, etc Si se necesitan otras carpetas se pueden agregar manualmente, pero Maven detecta las siguientes: config (archivos de configuracin, iconos,etc) resources (cosas que se incluirn en el jar) assembly (configuracin que tendr el zip de distribucion)
Compilacion
Para compilar agregamos al pom.xml el comando mvn compile Esto agrega el dir: target/clases/grupoID/proyectoID para meter los .class ah.
EjemploMaven
+---src +---target +---classes +---emede +---soft //Aqui van los archivos .class +---main +---test +---java +---emede +---soft +---java +---emede +---soft
Repositorios
Los repositorios son lugares donde Maven buscara para conseguir los jar para descargarlos de ah. Maven crea un repositorio local en donde guarda las dependencias que el proyecto necesita, para que no las tenga que volver a bajar de internet. La ruta donde guarda los repositorios que ha bajado es es en HOME/.m2 donde HOME es la ruta de nuestro usuario de Windows o el dir home en Linux. Se le pueden agregar mas repositorios a Maven, ya sea en internet o locales.
Dependencias
Para indicarle a Maven que baje un jar que necesitamos se modifica el pom.xml, en donde se agrega el groupID, articatID, versin y scope del jar a agregar, todo dentro de un dependency Por default viene agregado las dependencias de JUnit, pero hay que especificarle cual usaremos. El scope sirve para indicarle si se usara al compilar (compile) o al correr las pruebas (test),etc. Para agregar dependecias podemos buscarlas en la pagina de Maven (http://www.ibiblio.org/maven2/). Ejemplo:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency>
Existen 6 tipos de scope: Compile, por defecto. Las dependencias estn disponibles en el proyecto y en sus proyectos dependientes. Provided, se espera que el JDK, la aplicacin o el contenedor provea la dependencia. Runtime, la dependencia no es requerida en tiempo de compilacin pero s para la ejecucin. Test, son dependencias que son requeridas solo cuando se compila y ejecuta los test. System, similar a provided pero se le debe indicar el jar que contiene la dependencia Import, (a partir de la version 2.0.9) solo es usado en una dependencia del tipo POM en la seccin . Indica que el POM utilizado debe ser remplazado con las dependencias que ste tenga en su seccin
Asi de esta forma al crear otro proyecto que necesite usar ese jar, Maven e lo agregara solo. Si nuestro repositorio esta en red compartido entre varios programadores, usamos el comando
mvn deploy
Esto ase lo mismo que mvn install pero adems sube el jar al repositorio que esta en red para que pueda ser visto y usado por todos los programadores que ven el repositorio
Si el nombre del jar incluye SNAPSHOT Maven cada vez que compila va y busca si existe una nueva versin en redo en el repositorio de ese jar, si no incluye ese nombre solo busca una versin en el repositorio local.
Generar documentacin
Para usar el javadoc hay que modificar el pom.xml de Maven de la siguiente forma:
<dependencies> ... </dependencies> ... <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> </plugins> </reporting> ... </project>
para que Maven nos genere el javadoc dentro de target\site\apidocs Para generar una documentacin web ejecutamos el comando
mvn site:site
La generar en target\site, incluido el javadoc. Podemos personalizarla modificando el pom.xml, para ello y para ver como darle mas formatos podemos visitar http://maven.apache.org/
Maven con Eclipse Existen dos formas: usando un plug-in o creando el proyecto desde Maven y posteriormente importndolo. Usando el plug-in Para agregar un plugin a Eclipse si tenemos un proxy hay que configurarlo primero en window>preferences En la ventana que se abre escojemos Install/Update y marcamos enable http proxy connection, ponemos los datos de nuestro proxy y Aceptamos. Para agregar el plugin nos vamos a Help->Ecplise Marketplace En search buscamos maven y escojemos un plug-in, para este tutorial usaremos Maven Integration for Eclipse (m2e) y presionamos Install Marcamos todas las casillas que salgan, Aceptamos y cuando termine de descargarse presionamos Next Aceptamos la licencia y presionamos Finish. Cuando termine de instalarse reiniciamos eclipse y Listo. Importando un proyecto existente Creamos una variable llamada M2_REPO en eclipse, lo podemos hacer desde lnea de comandos con:
mvn -Declipse.workspace=<path_al_workspace_de_eclipse> eclipse:add-maven-repo
o desde eclipse en Window > Preferences. Luego Java > Build Path > Classpath Variables y ahi definimos M2_REPO apuntando a C:\Documents and Settings\usuario\.m2 Luego eabrimos el proyecto en File->Import->Existing projects into workspace->Next Seleccionamos select root directory y seleccionamos browse Buscamos la ruta de nuestro proyecto y listo. Una vez que se abra el proyecto le damos clic derecho y seleccionamos maven2->enable Luego volvemos a dar clic derecho n maven2->update source folders para compilar el proyecto y agarre los jar del repositorio.
Maven con NetBeans Maven ya viene incluido en el IDE de Netbeans apartir de la versin 6.7. Si se tiene una versin mas vieja podemos descargar el plugin de la siguiente manera: En el men seleccionar Herramientas plugins En la seccin Plugins disponibles seleccionar el plugin Maven y hacer clic en Instalar. Reiniciar el netbeans, con eso netbeans reconoce y permite crear proyectos maven desde cero.