Primeros pasos con Maven
Contenido
- 1 Descarga e instala Maven
- 2 Cambiar la configuración de usuario del repositorio local para no contener espacios
- 3 Generar el primer proyecto. El archetype utilizado por defecto es el maven-archetype-quickstart
- 4 Ciclo de vida, fases y objetivos
- 5 Compilar el proyecto
- 6 Modificar el proyecto
- 7 Testear el proyecto
- 8 Introducir error en el test y tratar de generar el .jar en la carpeta target
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
- El packing por defecto es
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