¿Cómo instalo Maven 3?


33

Maven 2 está en los repositorios, pero no Maven 3. ¿Cómo instalo correctamente Maven 3? Las guías que encontré realmente no funcionan correctamente.

Estoy usando Natty, pero estoy seguro de que esto no cambiará nada.

Respuestas:


25

Maven3 es el predeterminado en Ubuntu 12.04 (preciso)

Maven2 es el último en los repositorios para 11.10.

Los PPA para maven3 parecen bastante escasos, aquí hay uno para maverick , aunque no es la última versión disponible.

El mejor consejo es permanecer con la versión estable disponible para su versión de distribución.

Sin embargo, si desea mantenerse actualizado, es muy sencillo descargar el código e instalarlo usted mismo.

Descargue el archivo .tar.gz desde aquí y siga las instrucciones de instalación en la misma página web


Intentaré usar el paquete en el repositorio al que me vinculó para guiar mis pasos.
nickguletskii

Bien, esto funciona. Gracias: extraje los archivos del archivo manualmente y reemplacé todo en / usr / share / maven3 / con archivos del tar.
nickguletskii

Probé esto pero no funcionó. después de cerrar el terminal no pudo reconocer el comando
mvn

@ user962206: haga una nueva pregunta.
fossfreedom


25

Aquí hay un PPA maven3 que funcionó bien para mí en Ubuntu 11.10 de 64 bits

sudo add-apt-repository ppa:natecarlson/maven3
sudo apt-get update && sudo apt-get install maven3

Si ya tiene instalado maven2 desde repositorios canónicos, esto no lo reemplazará sino que le dará un binario mvn3.

Si prefiere tener el binario llamado mvn en lugar de mvn3, simplemente puede hacer lo siguiente:

sudo ln -s /usr/bin/mvn3 /usr/bin/mvn

Fuente


44
Esto ya no parece funcionar.
KingOfHypocrites

4

La pregunta es vieja, pero dorada. Tenía que encontrar una solución hoy. Aquí vamos. No es necesario usar un repositorio no seguro , porque maven3 ya está incluido en los repositorios de Ubuntu. Una solución en Ubuntu 14.04 LTS será como:

  • sudo apt-get install maven
  • sudo update-alternatives --config mvn

Con el segundo comando se le pide que configure la versión utilizada. Puede distinguir los directorios correctos seleccionando la ruta donde maven2 NO es parte de ella.

   *0    /usr/share/maven2/bin/mvn   200       Auto-Modus
    1    /usr/share/maven/bin/mvn    150       manueller Modus
    2    /usr/share/maven2/bin/mvn   200       manueller Modus

En mi caso tuve que seleccionar 1

Con el comando emitido mvn -vpuede verificar si la configuración se realizó correctamente y si seleccionó la versión correcta. A continuación tiene un ejemplo de los valores devueltos.

  ~$ mvn -version
  Apache Maven 3.0.5
  Maven home: /usr/share/maven
  Java version: 1.7.0_75, vendor: Oracle Corporation
  Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
  Default locale: de_DE, platform encoding: UTF-8
  OS name: "linux", version: "3.13.0-45-generic", arch: "amd64", family: "unix"

Espero que esto te ayude un poco.


Eso solo da 3.0.5 (2016-02-05) pero me gustaría 3.3.x - ¿No hay forma de obtener eso?
Kajetan Abt

2

He creado un nuevo script que no solo debe instalar Maven +, agregarlo a bin, sino que retoma si está utilizando Ubuntu como invitado de VirtualBox y luego intenta montar la carpeta '.m2' y maven existente que puede / puede no contener las existentes ajustes

Maven sigue siendo el mismo si se ejecuta en Windows o Unix, por lo que puede usar el mismo Maven entre ambos si esta es su configuración de VirtualBox ...

PD. Tenga en cuenta la creación de scripts que pueden montar / desmontar carpetas compartidas desde / usr / local / bin :)

#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:."
export PATH

#Modify these variables as needed...
tempWork=/tmp/work
defaultStartScript=/etc/init.d/rc.local
defaultMaven=3.0.3
locBin=/usr/local/bin
mavenUsrLib=/usr/lib/maven

mkdir -p $mavenUsrLib
mkdir -p $HOME/.m2

read -p "Please [Enter] full path name of your local startup script ($defaultStartScript is the default). Please
make sure on this before providing a value by consulting documentation for your system:" locStartScript
locStartScript=${locStartScript:-$defaultStartScript}

read -p "Please [Enter] Maven Version ($defaultMaven is default):" mavenVersion
mavenVersion=${mavenVersion:-$defaultMaven}


if [ ! -f $locStartScript ]
then
    echo "The file you provided could not be found. Remember to include the full path and try again. Exiting in 7 secs..."
    sleep 7
    exit 1
fi

mkdir -p /$tempWork
cd /$tempWork

sudo wget http://mirrors.powertech.no/www.apache.org/dist//maven/binaries/apache-maven-$mavenVersion-bin.tar.gz
tar -zxvf ./*

#Move it to a more logical location
sudo mv -f ./apache-maven-$mavenVersion $mavenUsrLib/

#If you have Maven on Windows and use VirtualBox, you can set up the maven to be a virtualbox shared folder.
#The name must match the name used below (ignore if irrelevant to you).


if [ -f /sbin/mount.vboxsf ]
then
    sudo /sbin/umount $HOME/.m2
    sudo /sbin/umount $mavenUsrLib
    sudo /sbin/mount.vboxsf .m2 $HOME/.m2
    sudo /sbin/mount.vboxsf maven $mavenUsrLib
fi

if mountpoint -q $HOME/.m2 &&  mountpoint -q $mavenUsrLib
then
#Add it to the start script to automate process...
    sudo sed -ie '$d' $locStartScript
if ! grep "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" $locStartScript
then
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $locStartScript
fi

if ! grep "sudo /sbin/mount.vboxsf maven $mavenUsrLib" $locStartScript
then
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $locStartScript
fi
    echo "exit 0" | sudo tee -a $locStartScript
    sudo chmod +x $locStartScript

#Create a mount and unmount script file...
    rm -rf $tempWork/*
    echo '#!/bin/bash' > $tempWork/maven-mount.sh
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" >> $tempWork/maven-mount.sh
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" >> $tempWork/maven-mount.sh
    echo "echo 'mounted maven'" >> $tempWork/maven-mount.sh
    echo "exit 0" >> $tempWork/maven-mount.sh

    echo '#!/bin/bash' > $tempWork/maven-umount.sh
    echo "sudo umount $HOME/.m2" >> $tempWork/netbeans-umount.sh
    echo "sudo umount $mavenUsrLib" >> $tempWork/netbeans-umount.sh
    echo "echo 'unmounted maven'" >> $tempWork/maven-mount.sh
    echo 'exit 0' >> $tempWork/maven-umount.sh

#Script for mounting ALL VirtualBox shared solders....
#If there isn't one create one...
if [ ! -f $locBin/mount-all-from-host.sh ]
then
    echo '#!/bin/bash' > $tempWork/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $tempWork/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $tempWork/mount-all-from-host.sh
    echo "exit 0" | sudo tee -a $tempWork/mount-all-from-host.sh

#Otherwise if there is one, but no mount, add one...
elif ! grep "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" $locBin/mount-all-from-host.sh
then
    sudo sed -ie '$d' $locBin/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $locBin/mount-all-from-host.sh
    echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh

elif ! grep "sudo /sbin/mount.vboxsf maven $mavenUsrLib" $locBin/mount-all-from-host.sh
then
    sudo sed -ie '$d' $locBin/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $locBin/mount-all-from-host.sh
    echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh

fi

#Script for unmounting ALL VirtualBox shared folders...
#If there isn't one create one...
if [ ! -f $locBin/umount-all-from-host.sh ]
then
    echo '#!/bin/bash' > $tempWork/umount-all-from-host.sh
    echo "sudo umount -a -t vboxsf" | sudo tee -a $tempWork/umount-all-from-host.sh
    echo "echo 'unmounted all VirtualBox shared folders'" | sudo tee -a $tempWork/umount-all-from-host.sh
    echo "exit 0" | sudo tee -a $tempWork/umount-all-from-host.sh
fi

    sudo chmod +x $tempWork/*
    sudo mv -f $tempWork/*.sh $locBin/
    rm -rf $tempWork
fi

sudo ln -f -s $mavenUsrLib/apache-maven-$mavenVersion/bin/* /usr/bin/
sudo rm -rf $tempWork
sudo reboot

exit 0

2

Aquí está PPA maven3 que puede resolver este problema.

Sigue la instalación:

sudo apt-get purge maven maven2 maven3
sudo add-apt-repository ppa:andrei-pozolotin/maven3
sudo apt-get update && sudo apt-get install maven3

Y ahora has instalado maven3 :

nazar@lelyak-desktop ~ $ mvn -version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T14:57:37+03:00)
Maven home: /usr/share/maven3
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-24-generic", arch: "amd64", family: "unix"

Enlace a Launchpad



1

Actualicé pero recibí un error de clase no encontrado. Para arreglar esto:

Después de pasar algún tiempo probando varias combinaciones, descubrí que esto se debe a que tengo M2_HOME y M3_HOME configuradas en mis variables de entorno. Una vez que eliminé M2_HOME de mis variables de entorno, pude hacer que esto vuelva a funcionar. tiempo para alguien.


Por cierto: para eliminar M2_HOME de ubuntu: ver / etc / environment
RobAu

0

Descargue maven del sitio oficial de maven y extráigalo.

Mueva el directorio de la aplicación a / usr / local

sudo cp -R apache-maven-X.X.X /usr/local

Haga un enlace suave en / usr / bin para el acceso universal de mvn

sudo ln -s /usr/local/apache-maven-X.X.X/bin/mvn /usr/bin/mvn

Verifique la instalación de mvn

mvn --version

0

Si no se siente cómodo con un PPA ( archivo de paquete personal ) donde no tiene certeza de la procedencia, esta es una alternativa.

Desde una perspectiva de seguridad, si no sabe de dónde vino, no lo instale.

En mi artículo vinculado recupero el último archivo de Apache, que es una fuente conocida y confiable. Puedes obtener la última versión

\ #identificar la última versión de maven
    latest = $ (curl http://www-us.apache.org/dist/maven/maven-3/ | tac | sed -ne 's / [^ 0-9] * \ (\ ([0-9] \. \) \ {0,3 \} [0-9] \). * / \ 1 / p '| cabeza -1)
\#Descargalo
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

luego instálalo desde

\ # Desempaquete
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ #crear un enlace simétrico
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

como se describe en el enlace de arriba y mi publicación en


1
No publique la misma respuesta a varias preguntas. Si la misma información realmente responde a ambas preguntas, entonces una pregunta (generalmente la más nueva) debería cerrarse como un duplicado de la otra. Puede indicar esto votando para cerrarlo como un duplicado o, si no tiene suficiente reputación para eso, levante una bandera para indicar que es un duplicado. De lo contrario, adapte su respuesta a esta pregunta y no solo pegue la misma respuesta en varios lugares.
DavidPostill
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.