Maven 2 se trouve dans les référentiels, mais pas Maven 3. Comment installer correctement Maven 3? Les guides que j'ai trouvés ne fonctionnent pas vraiment correctement.
J'utilise Natty, mais je suis sûr que cela ne changera rien.
Maven3 est la valeur par défaut dans Ubuntu 12.04 (précis)
Maven2 est la dernière version des référentiels pour 11.10.
Les PPA pour maven3 semblent plutôt rares - en voici un pour non-conformiste - bien qu’il ne s’agisse pas de la toute dernière version disponible.
Le meilleur conseil est de rester avec la version stable disponible pour votre version de distro.
Toutefois, si vous souhaitez rester à jour, il est très simple de télécharger le code et de l'installer vous-même.
Téléchargez le fichier .tar.gz à partir de ici et suivez les instructions d'installation sur la même page Web.
Voici un PPA maven3 qui a bien fonctionné pour moi sur Ubuntu 11.10 64 bits
Sudo add-apt-repository ppa:natecarlson/maven3
Sudo apt-get update && Sudo apt-get install maven3
Si vous avez déjà installé maven2 à partir de dépôts canoniques, cela ne le remplacera pas mais vous donnera un binaire mvn3.
Si vous préférez avoir le binaire appelé mvn au lieu de mvn3, vous pouvez simplement procéder comme suit:
Sudo ln -s /usr/bin/mvn3 /usr/bin/mvn
La question est ancienne, mais or. Je devais trouver une solution aujourd'hui. Et c'est parti. Il n'est pas nécessaire d'utiliser un référentiel non sécurisé, car maven est déjà inclus dans le dépôt Ubuntu. Une solution à Ubuntu 14.04 LTS sera comme:
Sudo apt-get install maven
Sudo update-alternatives --config mvn
Avec la 2ème commande, vous êtes invité à définir la version utilisée. Vous pouvez distinguer les bons répertoires en sélectionnant le chemin où maven2 n'en fait PAS partie.
*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
Dans mon cas, je devais sélectionner 1
Avec la commande émise mvn -v
, vous pouvez vérifier si le paramètre a réussi et si vous avez sélectionné la version correcte. Vous trouverez ci-dessous un exemple des valeurs renvoyées.
~$ 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"
J'espère que ça vous aide un peu.
Voici le PPA maven3 qui peut résoudre ce problème.
Suivez l'installation:
Sudo apt-get purge maven maven2 maven3
Sudo add-apt-repository ppa:andrei-pozolotin/maven3
Sudo apt-get update && Sudo apt-get install maven3
Et maintenant vous avez installé 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"
J'ai créé un nouveau script qui doit non seulement installer Maven +, l'ajouter à bin, mais le récupérer si vous utilisez Ubuntu en tant qu'invité de VirtualBox, puis essayez de monter les dossiers '.m2' et maven existants, qui ne contiennent peut-être pas déjà réglages.
Maven reste le même s'il fonctionne sous Windows ou Unix, vous pouvez donc utiliser le même Maven entre les deux si c'est votre configuration VirtualBox ...
PS Notez la construction de scripts permettant de monter/démonter des dossiers partagés à partir de/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
J'ai mis à jour mais j'ai eu une erreur de classe. Pour résoudre ce problème:
Après avoir passé du temps à essayer diverses combinaisons, j’ai trouvé que c’est parce que M2_HOME et M3_HOME sont définis dans mes variables d’environnement. temps pour quelqu'un.
Téléchargez maven depuis le site officiel de maven et extrayez-le.
Déplacez le répertoire de l'application vers/usr/local
Sudo cp -R Apache-maven-X.X.X /usr/local
Créez un lien souple dans/usr/bin pour un accès universel à mvn
Sudo ln -s /usr/local/Apache-maven-X.X.X/bin/mvn /usr/bin/mvn
Verifify mvn installation
mvn --version
Si vous n’êtes pas à l’aise avec un PPA ( archive de package personnel ) sans garantie de la provenance c'est une alternative.
Du point de vue de la sécurité, si vous ne savez pas d'où ça vient, ne l'installez pas.
Dans mon lien article , je récupère le dernier fichier d'Apache, qui est une source connue et fiable. Vous pouvez obtenir la dernière version
\# identifie la dernière version 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 '| tête -1) \# téléchargez-le wget http://www-us.Apache.org/dist/maven/maven-3/$latest/binaries/Apache-maven-$latest-bin.tar. gz
puis installez-le de
\# Décompressez-le Sudo -zxf Apache-maven- $ latest-bin.tar.gz -C /usr/local/ \#create un lien sym à la Sudo ln -s/usr/local/Apache-maven- $ latest/bin/mvn /usr/bin/mvn
comme indiqué dans le lien ci-dessus et mon post sur