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