web-dev-qa-db-fra.com

Comment installer Maven 3?

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.

33
nickguletskii

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.

25
fossfreedom

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

Source

25
realgt

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.

4
Semo

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"

Lien vers Launchpad

2
nazar_art

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
2
thejartender

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.

1
RobAu

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
0
Thirumal

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

0
TomRed