Come installo Maven 3?


33

Maven 2 è nei repository, ma non Maven 3. Come posso installare correttamente Maven 3? Le guide che ho scoperto non funzionano davvero correttamente.

Sto usando Natty, ma sono sicuro che questo non cambierà nulla.

Risposte:


25

Maven3 è il valore predefinito in Ubuntu 12.04 (preciso)

Maven2 è l'ultimo dei repository per l'11.10.

I PPA per Maven3 sembrano piuttosto scarsi - eccone uno per Maverick - sebbene non sia l'ultima versione disponibile.

Il miglior consiglio è di rimanere con la versione stabile disponibile per la tua versione di distribuzione.

Tuttavia, se ti piace aggiornarti, è molto semplice scaricare il codice e installarti.

Scarica il file .tar.gz da qui e segui le istruzioni per l'installazione sulla stessa pagina web


Proverò ad utilizzare il pacchetto nel repository a cui mi hai collegato per guidare i miei passi.
nickguletskii,

Bene, questo funziona. Grazie - Ho estratto manualmente i file dall'archivio e ho sostituito tutto in / usr / share / maven3 / con i file dal tar.
nickguletskii,

provato questo ma non ha funzionato. dopo aver chiuso il terminale non è stato riconosciuto il comando
mvn

@ user962206 - fai una nuova domanda.
Fossfreedom


25

Ecco un PPA maven3 che ha funzionato bene per me su Ubuntu 11.10 a 64 bit

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

Se hai già installato maven2 dai repository canonici questo non lo sostituirà ma ti darà un binario mvn3.

Se preferisci avere il binario chiamato mvn invece di mvn3 puoi semplicemente fare quanto segue:

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

fonte


4
Questo non sembra funzionare più.
KingOf Hypocrites,

4

La domanda è vecchia, ma d'oro. Ho dovuto trovare una soluzione oggi. Eccoci qui. Non è necessario utilizzare un repository non sicuro , poiché maven3 è già incluso nel repository Ubuntu. Una soluzione su Ubuntu 14.04 LTS sarà simile a:

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

Con il 2 ° comando ti viene chiesto di impostare la versione utilizzata. È possibile distinguere le directory corrette selezionando il percorso in cui maven2 NON ne fa parte.

   *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

Nel mio caso ho dovuto selezionare 1

Con il comando emesso mvn -vè possibile verificare se l'impostazione ha avuto esito positivo e se è stata selezionata la versione corretta. Di seguito hai un esempio dei valori restituiti.

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

Spero che questo ti aiuti un po '.


Questo dà solo 3.0.5 (2016-02-05) ma vorrei 3.3.x - Non c'è modo di ottenerlo?
Kajetan il

2

Ho creato un nuovo script che non dovrebbe solo installare Maven + aggiungerlo al cestino, ma lo raccoglie se stai usando Ubuntu come guest VirtualBox e quindi tenta di montare '.m2' e cartelle maven esistenti che potrebbero / potrebbero non contenere esistenti impostazioni.

Maven rimane lo stesso se funziona su Windows o Unix, quindi puoi usare lo stesso Maven tra entrambi è questa è la configurazione di VirtualBox ...

PS. Nota la generazione di script che possono montare / smontare cartelle condivise da / 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

Ecco maven3 PPA che può risolvere questo problema.

Segui l'installazione:

sudo apt-get purge maven maven2 maven3
sudo add-apt-repository ppa:andrei-pozolotin/maven3
sudo apt-get update && sudo apt-get install maven3

E ora hai installato 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"

Collegamento a Launchpad



1

Ho eseguito l'aggiornamento ma ho riscontrato un errore di classe non trovato. Per risolvere questo problema:

Dopo aver trascorso un po 'di tempo a provare varie combinazioni, ho scoperto che ciò è dovuto al fatto che ho impostato sia M2_HOME che M3_HOME nelle variabili di ambiente. Una volta rimosso M2_HOME dalle variabili di ambiente, ho potuto ripristinare il funzionamento. tempo per qualcuno.


A proposito: per rimuovere M2_HOME da Ubuntu: vedi / etc / environment
RobAu,

0

Scarica maven dal sito ufficiale di maven ed estrailo.

Spostare la directory dell'applicazione in / usr / local

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

Crea un soft link in / usr / bin per l'accesso universale a mvn

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

Verifica l'installazione di mvn

mvn --version

0

Se non ti senti a tuo agio con un PPA ( archivio di pacchetti personali ) in cui non hai la certezza della provenienza, questa è un'alternativa.

Dal punto di vista della sicurezza, se non sai da dove proviene, non installarlo.

Nel mio articolo collegato recupero l'ultimo file da apache che è una fonte nota e attendibile. Puoi ottenere l'ultima versione

\ #identifica l'ultima versione di 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 '| testa -1)
\#scaricalo
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

quindi installarlo da

\ #Spacchettalo
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ #crea un collegamento sym ad esso
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

come indicato nel link sopra e il mio post su


1
Si prega di non pubblicare la stessa risposta a più domande. Se le stesse informazioni rispondono davvero ad entrambe le domande, allora una domanda (di solito la più recente) dovrebbe essere chiusa come duplicata dell'altra. Puoi indicarlo votando per chiuderlo come duplicato o, se non hai abbastanza reputazione per quello, alza un flag per indicare che è un duplicato. Altrimenti personalizza la tua risposta a questa domanda e non incollare la stessa risposta in più punti.
DavidPillill
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.