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.
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:
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
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
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 -v
puede 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.
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
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"
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.
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
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