Maven 2 знаходиться у сховищах, але не Maven 3. Як правильно встановити Maven 3? Посібники, які я знайшов, насправді не працюють належним чином.
Я використовую Натті, але впевнений, що це нічого не змінить.
Maven 2 знаходиться у сховищах, але не Maven 3. Як правильно встановити Maven 3? Посібники, які я знайшов, насправді не працюють належним чином.
Я використовую Натті, але впевнений, що це нічого не змінить.
Відповіді:
Maven3 є типовим для Ubuntu 12.04 (точно)
Maven2 - найновіший у сховищах за 11.10.
PPA для maven3 здається досить дефіцитним - ось такий для maverick - хоча не найновіша версія доступна.
Найкраща порада - залишитись на стабільній версії, доступній для вашої дистрибутивної версії.
Однак якщо ви хочете постійно бути в курсі, вам дуже просто завантажити код і встановити самостійно.
Завантажте файл .tar.gz звідси і дотримуйтесь інструкцій із встановлення на тій же веб-сторінці
Ось 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
Питання старе, але золото. Мені довелося сьогодні знайти рішення. Ось і ми. Немає необхідності використовувати незахищений сховище, тому що 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"
Сподіваюсь, це вам трохи допоможе.
Я створив новий скрипт, який повинен не тільки встановити 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
Ось 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"
Я оновив, але отримав помилку, що не знайшов клас. Щоб виправити це:
Провівши деякий час на пробування різних комбінацій, я виявив, що це тому, що у мене в середовищі змінні M2_HOME і M3_HOME встановлені змінні середовища. Після того як я видалив M2_HOME зі змінних оточуючого середовища, я міг би повернути цю роботу знову. Можливо, це могло б врятувати серйозні час для якогось одного.
Завантажте 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
Якщо вам не комфортно з 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
як зазначено у посиланні вище та моїй публікації далі