Maven 3을 어떻게 설치합니까?


33

Maven 2는 저장소에 있지만 Maven 3에는 없습니다. Maven 3을 올바르게 설치하려면 어떻게해야합니까? 내가 찾은 가이드가 제대로 작동하지 않습니다.

Natty를 사용하고 있지만 아무것도 변경되지 않을 것이라고 확신합니다.

답변:


25

Mabun3은 Ubuntu 12.04의 기본값입니다 (정확함).

Maven2는 11.10의 최신 리포지토리입니다.

maven3에있는 PPA 오히려 부족한 것 - 여기에 하나입니다 코디 가 아닌 최신 버전이지만 가능 -.

가장 좋은 조언은 배포판에 사용 가능한 안정적인 버전을 유지하는 것입니다.

그러나 자신을 최신 상태로 유지하려면 코드를 다운로드하여 설치하는 것이 매우 간단합니다.

여기 에서 .tar.gz 파일을 다운로드하고 동일한 웹 페이지의 설치 지침을 따르십시오


나는 당신이 나를 연결하는 저장소에서 패키지를 사용하여 단계를 안내 할 것입니다.
nickguletskii 2016 년

그렇습니다. 감사합니다-아카이브에서 수동으로 파일을 추출하고 / usr / share / maven3 /의 모든 내용을 tar의 파일로 대체했습니다.
nickguletskii 2016 년

이것을 시도했지만 작동하지 않았습니다. 터미널을 닫은 후 mvn 명령을 인식하지 못했습니다
user962206

@ user962206-새로운 질문을하십시오.
fossfreedom


25

64 비트 우분투 11.10에서 잘 작동하는 maven3 PPA가 있습니다.

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

표준 저장소에서 maven2를 이미 설치 한 경우이를 대체하지 않지만 mvn3 바이너리를 제공합니다.

mvn3 대신 mvn이라는 바이너리를 사용하려면 다음을 수행하면됩니다.

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

출처


4
더 이상 작동하지 않는 것 같습니다.
KingOfHypocrites

4

문제는 오래되었지만 금입니다. 오늘 해결책을 찾아야했습니다. 여기 있습니다 maven3 이 이미 우분투 저장소에 포함되어 있기 때문에 안전하지 않은 저장소를 사용할 필요가 없습니다 . Ubuntu 14.04 LTS의 솔루션은 다음과 같습니다.

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

두 번째 명령으로 사용 된 버전을 설정하라는 메시지가 표시됩니다. maven2가 포함되지 않은 경로를 선택하여 올바른 디렉토리를 구별 할 수 있습니다.

   *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

내 경우에는 1 을 선택해야했습니다.

발행 된 명령으로 mvn -v설정이 성공했는지와 올바른 버전을 선택했는지 확인할 수 있습니다. 아래에는 반환 값의 예가 있습니다.

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

희망이 조금 도움이되기를 바랍니다.


그것은 3.0.5 (2016-02-05) 만 제공하지만 3.3.x를 원합니다-그것을 얻는 방법이 없습니까?
Kajetan Abt

2

Maven을 설치해야 할뿐만 아니라 bin에 추가 해야하는 새로운 스크립트를 만들었습니다 .Ubuntu를 VirtualBox 게스트로 사용하는 경우 선택하고 기존 '.m2'및 기존 폴더가 포함되어 있거나 포함하지 않을 수있는 maven 폴더를 마운트하려고 시도합니다 설정.

Maven은 Windows 또는 Unix에서 실행되는 경우 동일하게 유지되므로 둘 사이에 동일한 Maven을 사용할 수 있습니다. 이것이 VirtualBox 설정입니다 ...

추신. / 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

이 문제를 해결할 수있는 maven3 PPA가 있습니다.

설치를 따르십시오 :

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

이제 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"

런치 패드에 링크


1
ppa.launchpad.net/natecarlson/maven3/ubuntu/dists/trusty/main/ 을 가져 오는 실패했습니다 404 찾을 수 없음
서식지

1

업그레이드했지만 classnotfound 오류가 발생했습니다. 이 문제를 해결하려면

여러 가지 조합을 시도한 후 환경 변수에 M2_HOME과 M3_HOME이 모두 설정되어 있기 때문에 환경 변수에서 M2_HOME을 제거한 후 다시 작동시킬 수 있습니다. 하나를위한 시간.


BTW : 우분투에서 M2_HOME을 제거하려면 : / etc / environment 참조
RobAu

0

maven 공식 사이트에서 maven을 다운로드하고 추출하십시오.

응용 프로그램 디렉토리를 / usr / local로 이동

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

mvn의 보편적 액세스를 위해 / usr / bin에 소프트 링크를 만드십시오

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

mvn 설치 확인

mvn --version

0

출처에 대한 확신이없는 PPA ( 개인 패키지 아카이브)에 익숙하지 않은 경우 이는 대안입니다.

어디에서 왔는지 모르는 경우 보안 측면에서 설치하지 마십시오.

링크 된 기사 에서 아파치에서 알려지고 신뢰할 수있는 최신 파일을 검색합니다. 최신 버전을 얻을 수 있습니다

\ # 최신 버전의 maven을 식별
    latest = $ (컬 http://www-us.apache.org/dist/maven/maven-3/ | tac | sed -ne 's / [^ 0-9] * \ (\ ([0-9] \. \) \ {0,3 \} [0-9] \). * / \ 1 / p '| head -1)
\#다운로드 해
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

그런 다음에서 설치하십시오.

\ # 포장 풀기
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ # 심볼릭 링크를 만듭니다
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

위의 링크와 내 게시물에 설명 된대로


1
여러 질문에 동일한 답변을 게시하지 마십시오. 동일한 정보가 실제로 두 질문에 모두 대답하는 경우 한 질문 (보통 새로운 질문)은 다른 질문과 중복하여 닫아야합니다. 다음과 같은 방법으로이를 표시 할 수 있습니다 중복으로 닫 투표 또는, 당신이 충분한 명성을하지 않은 경우, 플래그 인상 이 중복의 것을 나타냅니다. 그렇지 않으면이 질문에 대한 답을 맞추고 동일한 대답을 여러 곳에 붙여 넣지 마십시오.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.