Saltar a contenido

¿Que es, para que sirve?

Maven es un sistema para la gestion de dependencias y del ciclo de vida de modulos de software.

Asi Maven nos ayudara tanto a compilar, construir y distribuir nuestro codigo.

1.Instalacion

Vamos a la pagina oficial de maven https://maven.apache.org/download.cgi y buscamos la distribucion que se adapta a nuestro sistema operativo.

Descargamos el Binary tar.gz archive (que es el ejecutable). Tambien podemos descargar el codigo fuente de los links Source si quisieramos

./images/download_installations.png

# Descargamos la distribucion a una carpeta
cd ~/development/tools/maven
wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz

#Descromprimir en la carpeta actual
tar -xvf apache-maven-3.9.6-bin.tar.gz

#Borramos el fichero tar.gz (ya no lo necesitamos)
rm ./apache-maven-3.9.6-bin.tar.gz

Una vez descargado debemos añadirlo al PATH de nuestro usuario para poder ejecutarlo libremente.

En linux, debemos modificar nuestro fichero ~/.bashrc y añadirlo al PATH

sudo nano ~/.bashrc

Y añadimos las lineas al final del archivo :

export M2_HOME=/home/myuser/development/tools/maven/apache-maven-3.9.6
export PATH=$M2_HOME/bin:$PATH
Guardamos Ctrl+O y salimos del editor Crtl+X

Y recargamos el bashrc (no es necesario, si abres otra consola ya lo tendras recargado)

source ~/.bashrc

Y comprobamos que maven ya esta disponible

$ mvn -version
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /home/dpena/development/tools/maven/apache-maven-3.9.6
Java version: 17.0.10, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-107-generic", arch: "amd64", family: "unix"

2.Configuracion

Por defecto nuestra instalacion de maven contiene un fichero /conf/settings.xml que tiene configurados los repositorios publicos de Maven (artifactory Maven Central), donde se encuentran la gran mayoria de dependencias que podemos necesitar para nuestros proyectos.

En caso de querer usar unos repositorios publicos deberiamos modificar este archivo indicando cuales son las rutas de los repositorios privados y las credenciales si fueran necesarias.