Як встановити Maven з Yum?


135

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

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

Коли я попросив yum встановити maven2, він відмовився, сказавши, що ніколи не чув про maven2.

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

Коли я зберігаю сховища Google for 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 з режиму, який ви також бажаєте витягти.
  2. виконайте наступне, щоб витягнути дьоготь,

    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 у сховище пакунків разом з усіма іншими пакетами, щоб людям не довелося перестрибувати ці обручі?
близько

3
@aroth, мабуть, тому, що є такі, які розглядають анафему Мейвена
Йосип Похоть

1
просто замініть шлях, який ви пройшли, на wgetтой, який ви отримаєте з maven.apache.org/download.cgi
Алі

@Ali Чи 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 Не знайдено "
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
vikingsteve

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 вам доведеться вийти / увійти .
скоромовка

1
Гарне рішення, дякую. До речі. Ви також можете ввести exec bash(якщо ви використовуєте bash).
Адам Сіміон

9

Для тих із вас, хто шукає спосіб встановити Maven у 2018 році:

$ sudo yum install maven

підтримується в ці дні.


Працює для мене на Amazon Linux 2 (березень 2019 року).
ccleve

4

Вам потрібно встановити його з yum? Є багато інших можливостей:

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

1
Так, я зроблю це приблизно протягом наступних 15 хвилин, якщо не зможу визначити кращого способу. Я не вагаюся в тому, що Yum насправді є хорошим продуктом, якщо він знає про все, що встановлено . Інакше не так вже й багато. Я впевнений, що Maven також є хорошим продуктом, виконуючи щось, що мені не потрібно робити, постійно оновлюючи версії бібліотеки. Система, яку я схильний використовувати її як систему побудови, завдання, яке воно трохи краще, ніж сценарій оболонки, і приблизно на третину настільки ж добре, як Make, приблизно в 1989 році. Гррр.
Мальволіо

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

2
Питання в тому, щоб встановити його з yum.
robermorales

7
Обидві ці відповіді не відповідають на запитання. Справжня відповідь повинна бути про деякі доступні yum repo, які містять пакети 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 - lol і вибачте (ви все ще можете підтримати моє рішення :))
jgp

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.