Como instalo o Maven 3?


33

O Maven 2 está nos repositórios, mas não o Maven 3. Como instalo o Maven 3 corretamente? Guias que eu achei realmente não funcionam corretamente.

Estou usando Natty, mas tenho certeza que isso não vai mudar nada.

Respostas:


25

Maven3 é o padrão no Ubuntu 12.04 (preciso)

O Maven2 é o mais recente nos repositórios da 11.10.

Os PPAs para o maven3 parecem bastante escassos - aqui está um para o independente - embora não seja a versão mais recente disponível.

O melhor conselho é ficar com a versão estável disponível para a sua versão de distribuição.

No entanto, se você deseja manter-se atualizado, é muito simples fazer o download do código e instalar-se.

Faça o download do arquivo .tar.gz aqui e siga as instruções de instalação na mesma página da web


Vou tentar usar o pacote no repositório ao qual você me vinculou para orientar meus passos.
nickguletskii

Certo, isso funciona. Obrigado - eu extraí arquivos do arquivo manualmente e substituí tudo em / usr / share / maven3 / por arquivos do tar.
nickguletskii

tentei isso, mas não funcionou. depois de fechar o terminal não poderia reconhecer o comando mvn
user962206

@ user962206 - faça uma nova pergunta.
fossfreedom


25

Aqui está um PPA maven3 que funcionou bem para mim no Ubuntu 11.10 de 64 bits

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

Se você já tiver instalado o maven2 a partir de repositórios canônicos, isso não o substituirá, mas fornecerá um binário mvn3.

Se você preferir ter o binário chamado mvn em vez de mvn3, basta fazer o seguinte:

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

Fonte


4
Isso parece não funcionar mais.
KingOfHypocrites

4

A questão é antiga, mas dourada. Eu tive que encontrar uma solução hoje. Aqui vamos nós. Não há necessidade de usar um repositório não seguro, porque o maven3 já está incluído nos repositórios do Ubuntu. Uma solução no Ubuntu 14.04 LTS será como:

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

Com o segundo comando, você é solicitado a definir a versão usada. Você pode distinguir os diretórios corretos selecionando o caminho em que o maven2 NÃO faz parte dele.

   *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

No meu caso, eu tive que selecionar 1

Com o comando emitido, mvn -vvocê pode verificar se a configuração foi bem-sucedida e se você selecionou a versão correta. Abaixo você tem um exemplo dos valores retornados.

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

Espero que isto te ajude um pouco.


Isso só dá 3.0.5 (05-02/2016), mas eu gostaria do 3.3.x - Não há como conseguir isso?
precisa

2

Eu criei um novo script que não deve apenas instalar o Maven + adicioná-lo à lixeira, mas pega se você estiver usando o Ubuntu como um convidado do VirtualBox e, em seguida, tenta montar a pasta '.m2' e maven existente, que pode / não conter configurações.

O Maven permanece o mesmo se for executado no Windows ou no Unix, para que você possa usar o mesmo Maven entre ambos, esta é a sua configuração do VirtualBox ...

PS. Observe a construção de scripts que podem montar / desmontar pastas compartilhadas no diretório / 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

Aqui está o maven3 PPA que pode resolver esse problema.

Siga a instalação:

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 agora você instalou o 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"

Link para Launchpad



1

Fiz o upgrade, mas recebi um erro de classe não encontrada. Para corrigir isso:

Depois de passar algum tempo tentando várias combinações, descobri que isso é porque eu tenho M2_HOME e M3_HOME definidos nas minhas variáveis ​​de ambiente. tempo para alguém.


BTW: para remover o M2_HOME do ubuntu: consulte / etc / environment
RobAu

0

Faça o download do maven do site oficial do maven e extraia.

Mova o diretório do aplicativo para / usr / local

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

Crie um link flexível em / usr / bin para acesso universal ao mvn

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

Verificar instalação mvn

mvn --version

0

Se você não se sentir confortável com um PPA ( arquivo de pacotes pessoais ) em que não tem garantia de procedência, essa é uma alternativa.

Do ponto de vista da segurança, se você não souber de onde veio, não o instale.

No meu artigo vinculado , recupero o arquivo mais recente do apache, que é uma fonte conhecida e confiável. Você pode obter a versão mais recente

\ #identify a versão mais recente do maven
    mais recente = $ (curl http://www-us.apache.org/dist/maven/maven-3/ | tac | sed -ne's / [^ 0-9] * \ (\ ([0-9] \. \) \ {0,3 \} [0-9] \). * / \ 1 / p '| cabeça -1)
\#baixe
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

depois instale

\ #Desembalar
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ #crear um link sym para ele
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

conforme descrito no link acima e minha postagem em


1
Não publique a mesma resposta em várias perguntas. Se a mesma informação realmente responder a ambas as perguntas, uma pergunta (geralmente a mais recente) deve ser fechada como duplicata da outra. Você pode indicar isso votando para fechá-lo como duplicado ou, se você não tiver reputação suficiente para isso, levante uma bandeira para indicar que é uma duplicata. Caso contrário, adapte sua resposta a essa pergunta e não cole a mesma em vários lugares.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.