Як встановити Maven 3?


33

Maven 2 знаходиться у сховищах, але не Maven 3. Як правильно встановити Maven 3? Посібники, які я знайшов, насправді не працюють належним чином.

Я використовую Натті, але впевнений, що це нічого не змінить.

Відповіді:


25

Maven3 є типовим для Ubuntu 12.04 (точно)

Maven2 - найновіший у сховищах за 11.10.

PPA для maven3 здається досить дефіцитним - ось такий для maverick - хоча не найновіша версія доступна.

Найкраща порада - залишитись на стабільній версії, доступній для вашої дистрибутивної версії.

Однак якщо ви хочете постійно бути в курсі, вам дуже просто завантажити код і встановити самостійно.

Завантажте файл .tar.gz звідси і дотримуйтесь інструкцій із встановлення на тій же веб-сторінці


Я спробую використати пакет у репо-репортажі, до якого ви мене зв'язали, щоб провести мої кроки.
nickguletskii

Правильно, це працює. Дякую - я витягнув файли з архіву вручну і замінив усе в / usr / share / maven3 / файлами з tar.
nickguletskii

спробував це, але не вийшло. після закриття терміналу не вдалося розпізнати команду mvn
user962206

@ user962206 - будь ласка, задайте нове запитання.
fossfreedom


25

Ось maven3 PPA, який відмінно працював для мене на 64-бітному Ubuntu 11.10

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

Якщо у вас вже встановлений maven2 з канонічних репозицій, це не замінить його, а надасть mvn3.

Якщо ви віддаєте перевагу двійковій назві mvn замість mvn3, ви можете просто зробити наступне:

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

Джерело


4
Схоже, це більше не працює.
KingOfHypocrites

4

Питання старе, але золото. Мені довелося сьогодні знайти рішення. Ось і ми. Немає необхідності використовувати незахищений сховище, тому що maven3 вже включений у репост Ubuntu. Рішення в Ubuntu 14.04 LTS буде таким:

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

За допомогою 2-ї команди вам потрібно буде встановити використану версію. Ви можете відрізнити правильні каталоги, вибравши шлях, де 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 + додати його до скриньки, але вибирає, якщо ви використовуєте Ubuntu як гість VirtualBox, а потім намагаєтесь встановити існуючу папку '.m2' та maven, яка може / не може містити існуючу налаштування.

Maven залишається тим самим, якщо він працює в Windows або Unix, тому ви можете використовувати один і той же Maven між обома, це ваша налаштування VirtualBox ...

PS. Зверніть увагу на складання скриптів, які можуть монтувати / демонтувати спільні папки з / 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"

Посилання на Launchpad


1
Не вдалося отримати ppa.launchpad.net/natecarlson/maven3/ubuntu/dists/trusty/main/… 404 Не знайдено
місця проживання

1

Я оновив, але отримав помилку, що не знайшов клас. Щоб виправити це:

Провівши деякий час на пробування різних комбінацій, я виявив, що це тому, що у мене в середовищі змінні M2_HOME і M3_HOME встановлені змінні середовища. Після того як я видалив M2_HOME зі змінних оточуючого середовища, я міг би повернути цю роботу знову. Можливо, це могло б врятувати серйозні час для якогось одного.


BTW: видалити M2_HOME з ubuntu: дивіться / etc /
Environment

0

Завантажте Maven з офіційного сайту Maven та витяг.

Перемістіть каталог додатків у / usr / local

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

Зробіть м'яке посилання в / usr / bin для універсального доступу mvn

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

Перевірте встановлення mvn

mvn --version

0

Якщо вам не комфортно з PPA ( особистим архівом пакетів), де ви не маєте впевненості в походження, це альтернатива.

З точки зору безпеки, якщо ви не знаєте, звідки це прийшло, не встановлюйте його.

У своїй пов’язаній статті я витягую останній файл з apache, який є відомим і надійним джерелом. Ви можете отримати останню версію

\ # ідентифікуйте останню версію Maven
    останнє = $ (curl http://www-us.apache.org/dist/maven/maven-3/ | tac | sed -ne 's / [^ 0-9] * \ (\ ([0-9] \. \) \ {0,3 \} [0-9] \). * / \ 1 / p '| голова -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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.