Comment installer Maven 3?


33

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.

Réponses:


25

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 maverick - bien que ce ne soit pas la 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 d' ici et suivez les instructions d'installation sur la même page Web.


Je vais essayer d'utiliser le package dans le référentiel auquel vous m'avez associé pour guider mes démarches.
nickguletskii

Bon, ça marche. Merci - j'ai extrait manuellement les fichiers de l'archive et tout remplacé dans / usr / share / maven3 / par des fichiers du fichier tar.
nickguletskii

essayé cela mais cela n'a pas fonctionné. après la fermeture du terminal, il n'a pas pu reconnaître la commande
mvn

@ user962206 - veuillez poser une nouvelle question.
fossfreedom


25

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 source


4
Cela ne semble plus fonctionner.
KingOfHypocrites

4

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 maven3 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 -vvous 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.


Cela donne seulement 3.0.5 (2016-02-05) mais je voudrais 3.3.x - Pas moyen de l'obtenir?
Kajetan vers le

2

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à paramètres.

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

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



1

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.


BTW: supprimer M2_HOME d'ubuntu: voir / etc / environment
RobAu

0

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

Si vous n'êtes pas à l'aise avec une PPA ( archive de paquets personnels ) où vous n'avez aucune assurance 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 article lié, 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 '/ [^ 0-9] * \ (\ ([0-9] \. \) \ {0,3 \} [0-9] \). * / \ 1 / p '| head -1)
\#télécharge 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
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ #créer un lien sym
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

comme indiqué dans le lien ci-dessus et mon post sur


1
S'il vous plaît, ne postez pas la même réponse à plusieurs questions. Si la même information répond réellement aux deux questions, alors une question (généralement la plus récente) doit être fermée comme une copie de l’autre. Vous pouvez l'indiquer en votant en faveur de la fermeture en double ou, si vous n'avez pas assez de réputation pour cela, en levant un drapeau pour indiquer qu'il s'agit d'une copie. Sinon, adaptez votre réponse à cette question et ne collez pas la même réponse à plusieurs endroits.
DavidPostill
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.