Гид по технологиям

Установка Apache Maven на AlmaLinux 8

• 6 min read • DevOps • Обновлено 26 Nov 2025
Установка Apache Maven на AlmaLinux 8
Установка Apache Maven на AlmaLinux 8

Логотип Apache Maven на фоне кода

Apache Maven — это инструмент управления проектом и сборки для экосистемы Java. Он использует декларативную модель проекта (POM — Project Object Model) для описания структуры проекта, зависимостей и жизненного цикла сборки. POM выполняет роль единого компактного файла конфигурации, который заменяет устаревшие Makefile-подходы и упрощает воспроизводимость окружения на разных машинах.

Коротко о сути: Maven хранит метаданные проекта и зависимости в XML-файле (pom.xml). Это облегчает автоматическое управление зависимостями, воспроизводимые сборки и интеграцию в CI/CD-процессы.

Зачем использовать Maven

  • Конвенция поверх конфигурации: стандартные пути и lifecycle упрощают работу.
  • Централизованное управление зависимостями и репозиториями.
  • Повторяемые сборки на разных машинах и в CI.
  • Широкая экосистема плагинов (компиляция, тестирование, упаковка, деплой).

Важно: Maven сам по себе — Java-приложение, поэтому прежде чем устанавливать Maven, нужно обеспечить наличие совместимой Java (JDK).

Что потребуется перед началом

  • Сервер с AlmaLinux 8.
  • Доступ root или sudo.
  • Доступ в интернет для загрузки пакетов или архива Maven.

Критерии приёмки

  • Команда mvn -version возвращает установленную версию Maven и корректную ссылку на JAVA_HOME.
  • mvn clean package успешно собирает тестовый проект без ошибок зависимостей.
  • Среда доступна не только для root (mvn доступен для пользователей с корректным PATH).

Обновление системы

Важно сначала обновить систему, чтобы устранить уязвимости и обновить зависимости.

sudo dnf update -y
sudo dnf upgrade -y

Примечание: на серверах с длительным жизненным циклом обновления выполняйте планово и тестируйте в staging перед production.

Установка Java (JDK)

Maven требует установленного JDK. На AlmaLinux удобно использовать OpenJDK 11 как стабильный и широко используемый вариант.

sudo dnf install java-11-openjdk-devel -y

Проверьте установку:

java -version

Ожидаемый результат: вывод с информацией о версии Java, например OpenJDK 11 или выше. Если у вас несколько JDK, убедитесь, что JAVA_HOME указывает на нужную версию.

Быстрая установка Maven через dnf

Это самый простой метод: пакет Maven уже присутствует в репозиториях AlmaLinux. Недостаток: версия может быть старее актуальной.

sudo dnf install maven -y

Проверка:

mvn -version

Вывод команды mvn -version, показывающий версию Apache Maven

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

Установка Apache Maven из официального архива (последняя версия)

Установка из архива полезна, когда нужна конкретно более новая версия Maven, чем доступна в репозитории.

  1. Скачайте официальный архив (замените ссылку на актуальную версию при необходимости):
wget https://dlcdn.apache.org/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz
  1. Распакуйте архив в /opt и создайте символьную ссылку для удобства обновления:
sudo tar -xvf apache-maven-3.8.3-bin.tar.gz -C /opt
sudo ln -s /opt/apache-maven-3.8.3 /opt/maven
  1. Добавьте переменные окружения в системный профиль:
sudo nano /etc/profile.d/maven.sh

Вставьте в файл:

export JAVA_HOME=/usr/lib/jvm/jre-openjdk
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

Сделайте скрипт исполняемым и подгрузите его в текущую сессию:

sudo chmod +x /etc/profile.d/maven.sh && source /etc/profile.d/maven.sh

Проверьте установку:

mvn -version

Если всё настроено верно, вы увидите строку с версией Apache Maven (например, 3.8.3) и путь к используемой Java.

Совет: при обновлении Maven распакуйте новую версию в /opt и обновите символьную ссылку /opt/maven, затем перезапустите сессии пользователей.

Проверка функциональности (тестовый проект)

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

mvn archetype:generate -DgroupId=com.example -DartifactId=test-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
cd test-app
mvn clean package

Ожидаемый результат: успешная сборка и создание JAR/target каталога.

Частые ошибки и способы их устранения

  1. mvn: команда не найдена
  • Причина: PATH не содержит путь к Maven или профиль не загружен.
  • Решение: проверьте /etc/profile.d/maven.sh, выполните source /etc/profile.d/maven.sh и откройте новую сессию.
  1. Неверный JAVA_HOME или несовместимая версия Java
  • Причина: Maven использует системный JAVA_HOME, который указывает на JRE без инструментов разработки.
  • Решение: укажите путь на JDK (например /usr/lib/jvm/java-11-openjdk) в /etc/profile.d/maven.sh.
  1. Ошибки загрузки зависимостей (502/401/timeout)
  • Причина: сеть, прокси или закрытые репозитории.
  • Решение: настройте proxy в ~/.m2/settings.xml или в системных настройках; убедитесь в доступности https://repo.maven.apache.org.
  1. Проблемы с правами при установке в /opt
  • Решение: для системных инсталляций используйте sudo; для локальных разработчиков можно установить Maven в домашний каталог и добавить PATH в ~/.bashrc.

Дополнительные подходы и альтернативы

  • Установка через SDKMAN! — удобно для управления несколькими версиями Maven и JDK одновременно. Пример:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install maven 3.8.3
  • Пакетные менеджеры типа Homebrew on Linux (brew install maven) — удобно на рабочих станциях, но менее распространено на серверах.

Проверка целостности и безопасность загрузки

Рекомендуется при установке из архива сверять контрольные суммы и подписи (если доступны) на официальном сайте Apache. Примерный порядок действий:

  • Скачать файлы sha512/sha256 и .asc из официального зеркала.
  • Проверить контрольную сумму через sha512sum.
  • Проверить подпись через gpg (потребуется ключ разработчика Apache).

Эти шаги повышают уверенность в том, что архив не был подменён.

Рекомендации по безопасности и эксплуатации

  • Не используйте root-пользователя для повседневной разработки. Устанавливайте Maven в /opt, но работайте под ненадёжным пользователем.
  • Ограничьте доступ к системным профилям и скриптам, содержащим переменные окружения.
  • При использовании прокси — удостоверяйтесь, что credentials хранятся безопасно (не в открытом виде в репозитории).

Интеграция в CI/CD и советы по автоматизации

Мини-методология: добавление Maven в CI-пайплайн

  1. На CI-агенте установите JDK и Maven (или используйте контейнер/образ с предустановленным окружением).
  2. Кешируйте локальный Maven-репозиторий (~/.m2/repository) между сборками для ускорения.
  3. Добавьте шаги:
    • mvn -B -ntp -DskipTests clean package
    • mvn test (отдельный шаг)
  4. Артефакты публикуйте в Nexus/Artifactory или в облачный репозиторий.

Совет: используйте опции -B (batch) и -DskipTests для ускорения автоматических сборок при необходимости.

Таблица совместимости и миграции

  • Maven 3.x совместим с подавляющим большинством современных плагинов. При переходе с очень старых версий (2.x) проверьте плагины и структуры POM.
  • Java: Maven как приложение работает на Java 7+, но плагины и ваши проекты могут требовать конкретной версии JDK (8/11/17 и т.д.). Всегда проверяйте специфику плагинов.

Роли — что должен сделать каждый

  • Разработчик:

    • Проверить mvn -version и собрать локально проект.
    • Добавить .mvn/extensions.xml при необходимости специальных расширений.
  • DevOps/Системный администратор:

    • Установить Maven на CI-агенты и серверы сборки.
    • Настроить кеширование репозитория и прокси (если требуется).
    • Контролировать обновления и управлять символьными ссылками в /opt.
  • QA:

    • Запустить полную сборку и тесты в CI.
    • Проверить отчёты Surefire и Failures на предмет нестабильных тестов.

Часто встречающиеся вопросы (коротко)

  • Нужен ли JDK или достаточно JRE? — Для сборки требуется JDK (javac и инструменты сборки).
  • Можно ли иметь несколько версий Maven? — Да, используя символьные ссылки, SDKMAN или контейнеры.

Критерии приёмки (повторно)

  • mvn -version отображает корректную версию и JAVA_HOME.
  • mvn clean package успешно проходит для тестового приложения.
  • CI-пайплайн использует ту же версию Maven, что и локальная разработка, либо задокументировано отличие.

Заключение

Мы рассмотрели быстрый путь установки Maven через dnf и более контрольный путь установки из официального архива. Оба подхода рабочие: выбор зависит от требований к версии и политике поддержки в вашей организации. Рекомендуется поддерживать документацию по версии Maven и JDK в репозитории проекта, а также настраивать проверку целостности при установке из интернета.

Важно: делитесь руководством с командой, проверяйте совместимость плагинов при обновлении Maven и используйте кеширование в CI для ускорения сборок.

Полезные команды для быстрого доступа:

# Проверить Java
java -version
# Проверить Maven
mvn -version
# Собрать проект
mvn clean package

Если у вас остались вопросы или возникли ошибки на конкретном шаге — опишите окружение, вывод mvn -version и ошибки сборки, и это ускорит поиск решения.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро