Как установить Maven 3?

Нет, это невозможно. Невозможно для обычных пользователей удалить файл: обязательно.

Вам понадобится sudo, чтобы пользователи не могли удалять файлы. Ваш администратор всегда сможет удалить файл. sudo chattr +i test может предотвратить удаление, но требует sudo. Простой sudo chattr -i test позволяет удалить файл. Ни один другой пользователь, кроме администратора, не может использовать chattr.

И ... просто перезагрузка и переход в режим спасения позволят этому человеку удалять этот файл. Это был бы риск для безопасности, если бы был способ никогда не удалять файл.

1
задан 30 July 2014 в 00:31

7 ответов

Вот 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

Источник

25
ответ дан 25 May 2018 в 20:13
  • 1
    Кажется, это больше не работает. – KingOfHypocrites 9 June 2015 в 19:25

Вопрос старый, но золото. Я должен был найти решение сегодня. Вот так. Нет необходимости использовать небезопасный репозиторий, потому что maven3 уже включен в репозитории Ubuntu. Решение в 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

В моем случае мне пришлось выбрать maven3

С помощью выданной команды 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"

Надеюсь, это вам немного поможет.

4
ответ дан 25 May 2018 в 20:13
  • 1
    Это дает только 3.0.5 (2016-02-05), но мне хотелось бы 3.3.x - Невозможно это получить? – Kajetan Abt 5 February 2016 в 19:31

Я создал новый скрипт, который должен не только установить Maven + добавить его в bin, но и поднять, если вы используете 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
ответ дан 25 May 2018 в 20:13

Здесь 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

И теперь вы установили Следуйте установке: :

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

2
ответ дан 25 May 2018 в 20:13

Я обновил, но получил классную ошибку. Чтобы исправить это:

Потратив некоторое время на различные комбинации, я обнаружил, что это связано с тем, что у меня есть как M2_HOME, так и M3_HOME, установленные в моих переменных окружения. Когда я удалил M2_HOME из моих переменных окружения, я мог бы получить это работая снова. Может быть, это может сэкономить какое-то серьезное время для кого-то.

1
ответ дан 25 May 2018 в 20:13

Загрузите 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
ответ дан 25 May 2018 в 20:13

Если вам не нравится PPA (архив личных пакетов), в котором у вас нет уверенности в происхождении, это альтернатива.

С точки зрения безопасности, если вы не знаете, откуда она взялась, не устанавливайте его.

В моей связанной статье я извлекаю последний файл из apache, который является известным и надежный источник. Вы можете получить последнюю версию

\#identify the latest version of maven 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 it wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

, а затем установить ее из

\#Unpack it sudo tar -zxf apache-maven-$latest-bin.tar.gz -C /usr/local/ \#create a sym link to it sudo ln -s /usr/local/apache-maven-$latest/bin/mvn /usr/bin/mvn

, как указано в ссылке выше, и мое сообщение в

stackoverflow askubuntu [ ! d9]
0
ответ дан 25 May 2018 в 20:13
  • 1
    Пожалуйста, не отправляйте один и тот же ответ на несколько вопросов. Если одна и та же информация действительно отвечает на оба вопроса, тогда один вопрос (обычно более новый) должен быть закрыт как дубликат другого. Вы можете указать это голосованием , чтобы закрыть его как дубликат , или, если у вас недостаточно репутации для этого, поднимите флаг , чтобы указать, что это дубликат. В противном случае отредактируйте свой ответ на этот вопрос и не просто вставьте тот же ответ в несколько мест. – DavidPostill 22 April 2017 в 15:03

Другие вопросы по тегам:

Похожие вопросы: