Diferencia entre revisiones de «Primeros pasos con Maven»

De Wiki de EGC
Saltar a: navegación, buscar
(Página creada con «= Descarga e instala Maven= Descargue Maven y siguen las instrucciones de instalación. Tras instalar, ejecute <source lang="bash"> mvn --version </source> Si todo est...»)
 
m (Cambiar la configuración de usuario del repositorio local para no contener espacios)
Línea 25: Línea 25:
 
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
 
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
   <localRepository> nuevaRuta <localRepository>
+
   <localRepository> nuevaRuta </localRepository>
 
</settings>
 
</settings>
  

Revisión del 09:29 24 nov 2015

Descarga e instala Maven

Descargue Maven y siguen las instrucciones de instalación. Tras instalar, ejecute

mvn --version

Si todo está correcto, debería observar algo como lo que sigue:

Apache Maven 3.3.3
Maven home: C:\...\apache-maven-3.3.3\bin\..
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_25\jre
Default locale: es_ES, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

Cambiar la configuración de usuario del repositorio local para no contener espacios

Hay tres niveles de configuración: instalación (mavenInst/conf/settings.xml), usuario (userHome/.m2/settings.xml), proyecto (projectHome/pom.xml)

Por defecto, el repositorio local está en ${user.home}.m2/repository. Si se desea cambiar (para no contener espacios), en la carpeta ${user.home}.m2 crear un archivo settings.xml con el siguiente contenido.

<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <localRepository> nuevaRuta </localRepository>
</settings>

Generar el primer proyecto. El archetype utilizado por defecto es el maven-archetype-quickstart

mvn -B archetype:generate -DgroupId=es.egc.app -DartifactId=proy1

ó

mvn -B archetype:generate -DgroupId=es.egc.app -DartifactId=proy1 -DarchetypeArtifactId=maven-archetype-quickstart

Hacer un tree de la carpeta generada debido al arquetipo seleccionado. Verá:

  • src/main contiene el código fuente
  • src/test contiene el código para testeo
  • Dentro del pom.xml
    • El packing por defecto es jar.
    • Se incluye la dependencia a JUnit

Ciclo de vida, fases y objetivos

mvn fase1..faseN plugin1:objetivo1 pluginN:objetivoN
  • Las fases se ejecutan en el orden en que son invocados. Todas las fases previas definidas en el lifecycle, son ejecutadas también.
  • Hay tres lifecycle: clean, default, site.
  • Dependiendo del tipo de packing del proyecto, cada fase es mapeada a diferentes objetivos de plugins (cf. Lifecycles). Estas son las posibles fases:

validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy

Maven utiliza la convención de ficheros para encontrar los diferentes elementos del proyecto (cf. Ficheros)

Compilar el proyecto

mvn compile

Buscará los fuentes en src/main

Modificar el proyecto

  • Introdir método en la clase App.java
static int getVal(){
return 1;
}
  • Modificar test de la clase AppTest.java
…
assertTrue(App.getVal()==1);

Testear el proyecto

mvn test

Buscará los fuentes en src/test

Introducir error en el test y tratar de generar el .jar en la carpeta target

mvn package