Wie installiere ich Maven 3?


33

Maven 2 befindet sich in den Repositorys, aber nicht in Maven 3. Wie installiere ich Maven 3 ordnungsgemäß? Anleitungen, die ich gefunden habe, funktionieren nicht richtig.

Ich benutze Natty, aber ich bin sicher, dass dies nichts ändern wird.

Antworten:


25

Maven3 ist der Standard in Ubuntu 12.04 (präzise)

Maven2 ist das neueste Repository für 11.10.

PPAs für maven3 scheinen eher selten zu sein - hier ist eine für Einzelgänger - obwohl nicht die neueste Version verfügbar ist.

Der beste Rat ist, bei der stabilen Version zu bleiben, die für Ihre Distributionsversion verfügbar ist.

Wenn Sie jedoch selbst auf dem neuesten Stand bleiben möchten, ist es sehr einfach, den Code herunterzuladen und selbst zu installieren.

Laden Sie die .tar.gz-Datei von hier herunter und folgen Sie den Installationsanweisungen auf derselben Webseite


Ich werde versuchen, das Paket in dem Repo zu verwenden, mit dem Sie mich verlinkt haben, um meine Schritte zu leiten.
nickguletskii

Richtig, das funktioniert. Danke - Ich habe Dateien manuell aus dem Archiv extrahiert und alles in / usr / share / maven3 / durch Dateien aus dem tar ersetzt.
nickguletskii

habe dies versucht, aber es hat nicht funktioniert. Nach dem Schließen des Terminals konnte der Befehl mvn
user962206 am

@ user962206 - bitte stellen Sie eine neue Frage.
fossfreedom


25

Hier ist ein maven3-PPA, der auf 64-Bit-Ubuntu 11.10 gut funktioniert hat

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

Wenn Sie maven2 bereits von Canonical Repos installiert haben, wird es nicht ersetzt, sondern Sie erhalten eine MVN3-Binärdatei.

Wenn Sie lieber die Binärdatei mvn anstelle von mvn3 haben möchten, können Sie einfach Folgendes tun:

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

Quelle


4
Dies scheint nicht mehr zu funktionieren.
KingOfHypocrites

4

Die Frage ist alt, aber Gold. Ich musste heute eine Lösung finden. Auf geht's. Es ist nicht erforderlich, ein unsicheres Repository zu verwenden, da maven3 bereits in den Ubuntu-Repos enthalten ist. Eine Lösung bei Ubuntu 14.04 LTS wird lauten:

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

Mit dem 2. Befehl werden Sie aufgefordert, die verwendete Version einzustellen. Sie können die richtigen Verzeichnisse unterscheiden, indem Sie den Pfad auswählen, in dem maven2 NICHT enthalten ist.

   *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

In meinem Fall musste ich 1 auswählen

Mit dem ausgegebenen Befehl können mvn -vSie überprüfen, ob die Einstellung erfolgreich war und ob Sie die richtige Version ausgewählt haben. Unten sehen Sie ein Beispiel für die zurückgegebenen Werte.

  ~$ 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"

Hoffe das hilft dir ein bisschen.


Das gibt nur 3.0.5 (2016-02-05), aber ich möchte 3.3.x - Keine Möglichkeit, das zu bekommen?
Kajetan Abt

2

Ich habe ein neues Skript erstellt, mit dem Maven + nicht nur installiert, sondern auch in den Bin geladen werden soll, wenn Sie Ubuntu als VirtualBox-Gast verwenden. Anschließend wird versucht, vorhandene ".m2" - und "maven" -Ordner bereitzustellen, die möglicherweise vorhandene enthalten die Einstellungen.

Maven bleibt gleich, wenn es unter Windows oder Unix ausgeführt wird. Sie können also denselben Maven zwischen beiden verwenden, sofern dies Ihr VirtualBox-Setup ist.

PS. Beachten Sie die Erstellung von Skripten, mit denen freigegebene Ordner in / usr / local / bin eingehängt / ausgehängt werden können :)

#!/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

Hier ist maven3 PPA, das dieses Problem beheben kann.

Folgen Sie der 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

Und jetzt hast du maven3 installiert :

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"

Link zum Launchpad



1

Ich habe ein Upgrade durchgeführt, aber einen Fehler erhalten, der nicht gefunden wurde. So beheben Sie das:

Nachdem ich einige Zeit damit verbracht hatte, verschiedene Kombinationen auszuprobieren, stellte ich fest, dass dies daran liegt, dass sowohl M2_HOME als auch M3_HOME in meinen Umgebungsvariablen festgelegt sind. Sobald ich M2_HOME aus meinen Umgebungsvariablen entfernt habe, könnte dies wieder funktionieren Zeit für jemanden.


Übrigens: M2_HOME von Ubuntu entfernen: siehe / etc / environment
RobAu

0

Laden Sie maven von der offiziellen Maven-Website herunter und extrahieren Sie.

Verschieben Sie das Anwendungsverzeichnis nach / usr / local

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

Erstellen Sie einen Softlink in / usr / bin für den universellen Zugriff auf MVN

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

Überprüfen Sie die MVN-Installation

mvn --version

0

Wenn Sie mit einem PPA ( Personal Package Archive) nicht vertraut sind, bei dem Sie sich der Herkunft nicht sicher sind, ist dies eine Alternative.

Wenn Sie aus Sicherheitsgründen nicht wissen, woher es kommt, installieren Sie es nicht.

In meinem verlinkten Artikel rufe ich die neueste Datei von Apache ab, einer bekannten und vertrauenswürdigen Quelle. Sie können die neueste Version erhalten

\ #identify die neueste Version von Maven
    latest = $ (curl http://www-us.apache.org/dist/maven/maven-3/ | tac | sed -nes / [^ 0-9] * \ (\ ([0-9] \. \) \ {0,3 \} [0-9] \). * / \ 1 / p '| head -1)
\#lade es herunter
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

dann installiere es von

Pack es aus
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ #erstelle einen Sym-Link dazu
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

wie im obigen link umrissen und mein post auf


1
Bitte posten Sie nicht die gleiche Antwort auf mehrere Fragen. Wenn dieselben Informationen tatsächlich beide Fragen beantworten, sollte eine Frage (normalerweise die neuere) als Duplikat der anderen geschlossen werden. Sie können dies anzeigen, indem Sie abstimmen, um es als Duplikat zu schließen, oder, wenn Sie nicht genug Reputation dafür haben , ein Flag setzen, um anzuzeigen, dass es sich um ein Duplikat handelt. Passen Sie andernfalls Ihre Antwort auf diese Frage an und fügen Sie dieselbe Antwort nicht an mehreren Stellen ein.
DavidPostill
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.