Как установить Maven с помощью Yum?


135

Я стараюсь не узнать много о ням или мавен. Я унаследовал этот код и не хочу тратить в этой среде больше времени, чем нужно.

У меня есть конфетка Моя установка "имеет" ("тоже прикреплен"? "Знает о"?) Двух репозиториях: Amazon One и JPackage, что, как я понимаю, является чем-то вроде стандарта. (На самом деле, каждое из этих хранилищ состоит из двух вложенных хранилищ, но я не думаю, что это вызывает проблему.)

Когда я попросил yum установить maven2, он отказался, сказав, что никогда не слышал о maven2.

Когда я попросил yum установить maven2, игнорируя Amazon , он делает это, но устанавливает Maven 2.0.9, который довольно старый. Фактический pom.xml, который я имею, требует более высокой версии.

Когда я использую Google для репозиториев Maven, я получаю репозитории, которые Maven может использовать для создания других вещей, а не репозитории, которые Yum может использовать для установки Maven. (Я нашел репозиторий, содержащий вещь, которая позволяла Maven создавать Yum. Я думаю, что Google издевается надо мной).

Итак, все, что мне нужно, это файл репо, который указывает на репо, который содержит все, что мне нужно для установки Maven 2.2.1.

Если бы не все эти трудосберегающие устройства, я мог бы, вероятно, сделать некоторую работу.

Ответы:


215

Икар ответил на очень похожий для меня вопрос. Он не использует "ням", но все равно должен работать для ваших целей. Пытаться,

wget http://mirror.olnevhost.net/pub/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz

в основном просто зайти на сайт maven . Найдите версию Maven, которую вы хотите. Тип файла и используйте зеркало для выражения wget выше.

После этого процесс прост

  1. Запустите команду wget из директории, которую вы также хотите извлечь из maven.
  2. выполните следующую команду, чтобы извлечь tar,

    tar xvf apache-maven-3.0.5-bin.tar.gz
  3. переместить maven в / usr / local / apache-maven

    mv apache-maven-3.0.5  /usr/local/apache-maven
  4. Затем добавьте переменные env в файл ~ / .bashrc

    export M2_HOME=/usr/local/apache-maven
    export M2=$M2_HOME/bin 
    export PATH=$M2:$PATH
  5. Выполните эти команды

    источник ~ / .bashrc

6 :. Убедитесь, что все работает с помощью следующей команды

    mvn -version

1
Спасибо! лучший Maven я мог бы получить с помощью jpackageбыл , maven.noarchtbdкоторый был v1.1или maven2который был v2.0.4... ваши альтернативные инструкции помогли много , чтобы заставить меня Maven v3 :)
pulkitsinghal

53
Эти инструкции работают. Но почему они не могут просто поместить maven в репозиторий пакетов со всеми другими пакетами, чтобы людям не приходилось прыгать через эти обручи?
aroth

3
@aroth, вероятно, потому что есть те, кто считает анафему Maven
Джозеф Lust

1
просто замените путь, по которому вы переходите, на путь, который wgetвы получили от maven.apache.org/download.cgi
Али

@ Али Предоставляет ли Apache способ использовать свое доменное имя, а не зеркальное имя домена?
Блонг

115

Вы можете добавить maven в библиотеки yum следующим образом:

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

Теперь вы можете установить Maven так:

yum install apache-maven

После этого будет установлен Maven 3 и mvn -version покажет вам, какая у вас версия - у меня была 3.2.1.

Это отлично сработало для меня на CentOS 6 с одним исключением. Он установил OpenJDK 1.6 и сделал его версией Java по умолчанию, хотя я уже вручную установил JDK 8 (возможно, потому что я установил его вручную). Чтобы вернуть его обратно используйте alternatives:

alternatives --config java
alternatives --config javac

и выберите правильную версию.


8
Как описано на этом форуме , epel-$releaseverв загруженном .repoфайле его необходимо заменить epel-6, иначе yum install apache-mavenпроизойдет сбой с ошибкой 404.
ИЛИ Mapper

Даже замена epel- $ releasever на epel-6 завершается с ошибкой 404: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/i386/… [Errno 14] PYCURL ERROR 22 - «Запрошенный URL-адрес вернул ошибку : 404 Not Found "
lrkwz

1
можно установить конкретную (например, 3.0.1) версию с таким подходом?
bsferreira,

Я смог заставить его работать нормально с этой записью в /etc/yum.repos.d/epel-apache-maven.repoфайле репо:baseurl=https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/$basearch/
i_grok

alternatives --config java
Викингстев

61

Для дальнейшего использования и для простоты ради ленивых людей, которые не хотят много объяснений, а просто запускают вещи и заставляют их работать как можно скорее:

1) sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

2) sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo

3) sudo yum install -y apache-maven

4) mvn --version

Надеюсь, вам понравился этот сеанс копирования и вставки.


Это звучало так, как будто оно будет работать отлично, за исключением того, что получил эту ошибку: repos.fedorapeople.org/repos/dchen/apache-maven/epel-6/x86_64/… [Errno 14] HTTPS Ошибка 404 - Не найдено Не знаю, если репо временно недоступен или постоянно недоступен.
anon58192932

2
@advocate Я только что создал другой экземпляр сервера и выполнил точные команды, как описано, и работал как шарм. извините за поздний ответ, но, похоже, все еще работает. веселит.
Алехандро Пабло Ткачук

почему вы заменяете символ жестко закодированной версией?
Кейт

1
Я думаю, @Kate означает $releasever.
ᴠɪɴᴄᴇɴᴛ

3
Это работало для меня без шага 2, но он хочет isntall jdk 1.7, хотя у меня уже установлена ​​1.8
Адам

18
yum install -y yum-utils

yum-config-manager --add-repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo

yum-config-manager --enable epel-apache-maven

yum install -y apache-maven

для разработчика JVM это менеджер SDK для всего необходимого вам инструмента.

https://sdkman.io/

Установите SDKMAN:

yum install -y zip unzip

curl -s "https://get.sdkman.io" | bash

source "$HOME/.sdkman/bin/sdkman-init.sh"

Установите Maven:

sdk install maven

12

Недавно я узнал о удобном упаковочном инструменте под названием fpm . Наткнувшись на этот вопрос, я подумал, что могу попробовать. Оказывается, после прочтения ответа @ OrwellHindenberg легко упаковать maven в RPM с fpm.

yum install -y gcc make rpm-build ruby-devel rubygems
gem install fpm

создать каталог проекта и макет структуры каталогов пакета

mkdir maven-build
cd maven-build
mkdir -p etc/profile.d opt

создайте файл, в который мы будем устанавливать /etc/profile.d/maven.sh, мы будем хранить его в только что созданном каталоге etc / profile.d как maven.sh со следующим содержимым

export M3_HOME=/opt/apache-maven-3.1.0
export M3=$M3_HOME/bin
export PATH=$M3:$PATH

скачать и распаковать последнюю версию Maven в каталоге opt

wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.1.0/binaries/apache-maven-3.1.0-bin.tar.gz
tar -xzf apache-maven-3.1.0-bin.tar.gz -C opt

наконец, построить RPM

fpm -n maven-3.1.0 -s dir -t rpm etc opt

Теперь вы можете установить Maven через RPM

$ rpm -Uvh maven-3.1.0-1.0-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:maven-3.1.0            ########################################### [100%]

и альт

$ which mvn
/opt/apache-maven-3.1.0/bin/mvn

не совсем конфетка, но ближе к дому;)


Я пошел с maven 3 для моих целей, но так же легко упаковать maven v2.
quickshiftin

Еще одно замечание: вам нужно выйти из системы / войти в систему для скрипта /etc/profile.d/maven.sh .
quickshiftin

1
Хорошее решение, спасибо. КСТАТИ. Вы также можете ввести exec bash(при условии, что вы используете Bash).
Адам Сиемион

9

Для тех из вас, кто ищет способ установить Maven в 2018 году:

$ sudo yum install maven

поддерживается в эти дни.


У меня работает на Amazon Linux 2 (март 2019).
ccveve

4

Вам нужно установить его с ням? Есть много других возможностей:

  • Возьмите двоичный файл с http://maven.apache.org/download.html и поместите его в ваш / usr / bn
  • Если вы используете Eclipse, вы можете получить плагин m2eclipse (http://m2eclipse.sonatype.org/), который включает версию maven.

1
Да, я собираюсь сделать это в ближайшие 15 минут, если я не смогу найти лучший способ. Причина, по которой я не решаюсь, заключается в том, что Yum на самом деле хороший продукт, если он знает обо всем, что установлено . Иначе не так уж и много. Я уверен, что Maven также является хорошим продуктом, делая то, что мне не нужно, поддерживая актуальность библиотечных версий. Система, к которой я стремлюсь, использует ее как систему сборки, задача, в которой она немного лучше, чем сценарий оболочки, и примерно на треть меньше, чем у Make, около 1989 года. Grrr.
Мальволио

Что ж, если они поддерживали только maven2 до версии 2.0.7 в репозитории jPackage, то вы можете либо работать с этой версией, устанавливать вручную или создавать RPM из исходников maven.apache.org и устанавливать его с помощью yum , Но вы уже заявили, что не хотите тратить на это больше времени, чем необходимо, поэтому я думаю, что вариант 1 подойдет вам больше всего
klaustopher

2
Вопрос об установке его с помощью yum.
robermorales

7
Оба эти ответа не отвечают на вопрос. Реальный ответ должен быть о каком-нибудь доступном репозитории yum, который содержит пакеты maven3 (последняя стабильная?).
Джеймс Миллс

1
/usr/bnили /usr/bin? А как насчет других каталогов, таких как /usr/local?
Абдул

3

Maven поставляется с Fedora с середины 2014 года, так что теперь это довольно просто. Просто введите

sudo dnf install maven

Теперь проверьте установку, просто запустите maven в случайном каталоге

mvn

И это не удастся, потому что вы не указали цель, например mvn package

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.102 s
[INFO] Finished at: 2017-11-14T13:45:00+01:00
[INFO] Final Memory: 8M/176M
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build

[...]

2
глупая ошибка в том, что maven не mavenисполняемый файл, а скорее mvn...
JackLeo

3

Это то, что я прошел на Amazon / AWS EMR v5. (Адаптировано из предыдущих ответов), чтобы Maven и Java8 .

sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven
sudo alternatives --config java

выбрать Java8

sudo alternatives --config javac

выбрать Java8

Теперь, если вы запустите:

mvn -version

Вы должны получить:

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /usr/share/apache-maven
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.38.amzn1.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.14.47-56.37.amzn1.x86_64", arch: "amd64", family: “unix"

1
Хорошо, спасибо за публикацию этого. Компания, которая нуждалась в этом, прекратила свою деятельность в 2012 году, но я пью с основателями примерно два раза в год, поэтому я упомяну вашу помощь. :-)
Мальволио

@Malvolio - извините (вы все еще можете проголосовать за мое решение :))
jgp

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.