Bagaimana cara menginstal Maven 3?


33

Maven 2 ada di dalam repositori, tetapi bukan Maven 3. Bagaimana cara saya menginstal Maven 3 dengan benar? Panduan yang saya temukan tidak benar-benar berfungsi dengan baik.

Saya menggunakan Natty, tetapi saya yakin ini tidak akan mengubah apa pun.

Jawaban:


25

Maven3 adalah default di Ubuntu 12.04 (tepat)

Maven2 adalah yang terbaru dalam repositori untuk 11.10.

PPA untuk maven3 tampaknya agak langka - ini adalah salah satu untuk maverick - meskipun bukan versi terbaru yang tersedia.

Saran terbaik adalah tetap dengan versi stabil yang tersedia untuk versi distro Anda.

Namun, jika Anda ingin tetap mendapatkan informasi terbaru, sangat mudah untuk mengunduh kode dan menginstal sendiri.

Unduh file .tar.gz dari sini dan ikuti panduan instalasi pada halaman web yang sama


Saya akan mencoba dan menggunakan paket di repo yang Anda tautkan dengan saya untuk memandu langkah saya.
nickguletskii

Benar, ini berhasil. Terima kasih - Saya mengekstrak file dari arsip secara manual dan mengganti semuanya di / usr / share / maven3 / dengan file dari tar.
nickguletskii

mencoba ini tetapi tidak berhasil. setelah menutup terminal, terminal tidak dapat mengenali perintah mvn
user962206

@ user962206 - silakan ajukan pertanyaan baru.
fossfreedom


25

Berikut adalah PPA maven3 yang bekerja dengan baik untuk saya di 64 bit Ubuntu 11.10

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

Jika Anda telah menginstal maven2 dari repo kanonik ini tidak akan menggantikannya tetapi memberi Anda biner mvn3.

Jika Anda lebih suka memiliki biner bernama mvn daripada mvn3, Anda cukup melakukan hal berikut:

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

Sumber


4
Tampaknya ini tidak berfungsi lagi.
KingOfHypocrites

4

Pertanyaannya sudah tua, tetapi emas. Saya harus menemukan solusi hari ini. Kita mulai. Tidak perlu menggunakan repositori yang tidak aman, karena maven3 sudah termasuk dalam repo Ubuntu. Solusi di Ubuntu 14.04 LTS akan seperti:

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

Dengan perintah ke-2 Anda diminta untuk mengatur versi yang digunakan. Anda dapat membedakan direktori yang benar dengan memilih jalur tempat maven2 BUKAN bagian darinya.

   *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

Dalam kasus saya, saya harus memilih 1

Dengan perintah yang dikeluarkan, mvn -vAnda dapat memverifikasi, jika pengaturan berhasil dan apakah Anda memilih versi yang benar. Di bawah ini Anda memiliki contoh nilai yang dikembalikan.

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

Semoga ini bisa membantu Anda sedikit.


Itu hanya memberikan 3.0.5 (2016-02-05) tapi saya ingin 3.3.x - Tidak mungkin mendapatkannya?
Kajetan Abt

2

Saya telah membuat skrip baru yang tidak hanya menginstal Maven + menambahkannya ke bin, tetapi mengambilnya jika Anda menggunakan Ubuntu sebagai tamu VirtualBox dan kemudian mencoba untuk me-mount folder '.m2' dan maven yang sudah ada yang mungkin / mungkin tidak mengandung yang sudah ada pengaturan.

Maven tetap sama jika berjalan pada Windows atau Unix, jadi Anda dapat menggunakan Maven yang sama di antara keduanya apakah ini adalah pengaturan ...

PS. Perhatikan pembuatan skrip yang dapat me-mount / unmount folder bersama dari / 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

Berikut adalah PPA maven3 yang dapat mengatasi masalah ini.

Ikuti instalasi:

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

Dan sekarang Anda telah menginstal 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"

Tautan ke Launchpad



1

Saya memutakhirkan tetapi mendapat kesalahan classnotfound. Untuk memperbaikinya:

Setelah menghabiskan beberapa waktu mencoba berbagai kombinasi, saya menemukan bahwa ini karena saya memiliki kedua M2_HOME dan M3_HOME ditetapkan dalam variabel lingkungan saya. Setelah saya menghapus M2_HOME dari variabel lingkungan saya, saya bisa mengembalikannya lagi. Mungkin ini dapat menghemat beberapa masalah serius waktunya untuk seseorang.


BTW: untuk menghapus M2_HOME dari ubuntu: lihat / etc / environment
RobAu

0

Unduh maven dari situs resmi maven dan ekstrak.

Pindahkan direktori aplikasi ke / usr / local

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

Buat tautan lunak di / usr / bin untuk akses universal mvn

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

Verifikasi instalasi mvn

mvn --version

0

Jika Anda tidak nyaman dengan PPA ( arsip paket pribadi ) di mana Anda tidak memiliki jaminan atas asalnya, ini merupakan alternatif.

Dari perspektif keamanan jika Anda tidak tahu dari mana asalnya, jangan instal.

Dalam artikel tertaut saya, saya mengambil file terbaru dari apache yang merupakan sumber yang dikenal dan dipercaya. Anda bisa mendapatkan versi terbaru

\ #identifikasikan versi terbaru dari pakar
    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 '| head -1)
\ #download itu
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

lalu instal dari

\ #Bongkar itu
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ # buat tautan sym ke sana
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

seperti yang dijelaskan pada tautan di atas dan postingan saya


1
Tolong jangan memposting jawaban yang sama untuk beberapa pertanyaan. Jika informasi yang sama benar-benar menjawab kedua pertanyaan, maka satu pertanyaan (biasanya yang baru) harus ditutup sebagai duplikat dari yang lain. Anda dapat menunjukkan ini dengan memilih untuk menutupnya sebagai duplikat atau, jika Anda tidak memiliki reputasi yang cukup untuk itu, angkat bendera untuk menunjukkan bahwa itu adalah duplikat. Kalau tidak, sesuaikan jawaban Anda untuk pertanyaan ini dan jangan hanya menempelkan jawaban yang sama di banyak tempat.
DavidPostill
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.