ฉันจะติดตั้ง Maven 3 ได้อย่างไร


27

ฉันใช้ Ubuntu และจำเป็นต้องอัปเกรดเป็น Maven 3 จาก Maven 2 ใครก็ได้โปรดช่วยฉันติดตั้ง Maven 3 ได้ไหม


โอนย้ายจาก stackoverflow หรือไม่ จริงๆ? คำถาม 10k บน SO ที่มีแท็ก Maven และเพียง 9 ใน SU แต่คำถาม Maven ไม่ได้เกี่ยวกับการพัฒนาซอฟต์แวร์จริงๆเหรอ?
Eric Wilson

คำตอบ:


23

มีสองสิ่งพิมพ์ที่มีประโยชน์ในหัวข้อเฉพาะที่นี่:

PPA กับ Maven 3 สร้างโดย Nate Carlson:

https://launchpad.net/~natecarlson/+archive/maven3


4
หมายเหตุ: คุณไม่จำเป็นต้องถอนการติดตั้ง maven2 เพื่อให้มี maven3 ในระบบของคุณ maven3 PPA ติดตั้งไบนารีชื่อ "mvn3"
Jay Taylor

9

มันไม่ได้อยู่ในที่เก็บและจากประสบการณ์ของการแก้ปัญหาที่ดีที่สุดคือการดาวน์โหลดได้จาก apache.org , Untar มันเข้าไป/home/youruser/mavenแล้วเพิ่มไปยังเส้นทางของคุณเช่นการอธิบายที่นี่

ถอนการติดตั้ง maven 2 ปัจจุบันของคุณก่อนทำสิ่งนี้แน่นอน


ฉันจะถอนการติดตั้ง maven 2 ได้อย่างไร

2
ถ้าคุณได้รับมันจากที่เก็บ ubuntu ให้ทำการถอนการติดตั้ง 'sudo apt-get maven2'
ilcavero

7
ไม่มีเหตุผลในการถอนการติดตั้ง
bmargulies

5
apt-get remove, ไม่ใช่ apt-get ถอนการติดตั้ง, ฉันเชื่อ
Journeyman Geek

1
หน้าดาวน์โหลดที่ดีที่สุดในการอ้างถึงคือmaven.apache.org/download.htmlเนื่องจากมันยังคงเป็นเวอร์ชั่นล่าสุดเสมอ
Brett Porter

3

ฉันเริ่มตั้งค่า Ubuntu 12.10 ของฉันสำหรับโครงการที่ฉันกำลังทำอยู่ Maven 3 จำเป็นต้องมีการติดตั้งระบบและเนื่องจากปรากฎว่าเอกสารส่วนใหญ่มีการอ้างอิงถึงวิธีการติดตั้ง Maven เป็น Ubuntu รุ่น 12.04 หรือก่อนหน้านี้

การติดตั้งแบบแมนนวลนั้นมีประโยชน์หากคุณต้องการที่จะขุดลึกลงไปที่ ubuntu kernel ของคุณเกี่ยวกับ apt-get และจะหารายชื่อแอพพลิเคชั่นที่มีให้สำหรับการติดตั้งบน Ubuntu นอกจากนี้ยังอาจเป็นประโยชน์สำหรับ Ubuntu รุ่นล่าสุดเช่นUbuntu 13.04และอื่น ๆ หากคุณประสบปัญหาเดียวกันกับที่ฉันทำตอนนั้นด้วย Ubuntu 12.10 เอกสารที่ดีที่สุดที่ฉันพบคือ:

killertilapia.blogspot.com.au/2012/10/installing-maven-3-in-ubuntu-1204.html

คู่มือการติดตั้ง:

กระบวนการทั้งหมดที่ฉันคิดขึ้นมามีดังนี้:

  1. sudo -H gedit /etc/apt/sources.list
  2. เพิ่มบรรทัดซอร์สไฟล์รายการต่อไปนี้:

    deb http://ppa.launchpad.net/natecarlson/maven3/ubuntuหลักที่แม่นยำ

    deb-src http://ppa.launchpad.net/natecarlson/maven3/ubuntuหลักที่แม่นยำ

  3. sudo apt-get update && sudo apt-get install maven3

  4. sudo ln -s / usr / share / maven3 / bin / mvn / usr / bin / mvn

ข้อควรระวัง 1: คำสั่ง "sudo add-apt-repository ppa: natecarlson / maven3" ไม่ทำงานบน Ubuntu ของฉันและต้องเรียกใช้ "sudo add-apt-repository -rm ppa: natecarlson / maven3" อีกครั้ง

ข้อควรระวังที่ 2: ต้องขอบคุณ David คุณจะต้องลบลิงก์สัญลักษณ์ที่มีอยู่ไปยัง maven เวอร์ชันก่อนหน้าก่อนที่จะรันขั้นตอนที่ 4

การติดตั้งอัตโนมัติ:

sudo apt-get remove maven2
sudo apt-get update
sudo apt-get install maven

ข้อมูลบางอย่างยังมีให้ที่นี่สำหรับทั้งคู่มือและการติดตั้งอัตโนมัติ


3
ยินดีต้อนรับสู่ Super User! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
slhck

ขอบคุณสำหรับคำตอบ มันทำงานร่วมกับฉันใน 13.04 Ubuntu
mamdouh alramadan

0

ลองใช้สคริปต์ต่อไปนี้ที่ฉันเขียนขึ้นเพื่อให้เป็นสากลสำหรับ Linux และตรวจจับการใช้ VirtualBox ที่เป็นไปได้และพยายามเมานต์ไฟล์ที่เป็นไปได้จากแขกรับเชิญ

#!/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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.