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

Установка Apache Maven на Debian 11

• 6 min read • DevOps • Обновлено 24 Nov 2025
Установка Apache Maven на Debian 11
Установка Apache Maven на Debian 11

Иллюстрация: логотип Apache Maven и Debian

Apache Maven — это инструмент сборки, который понимает структуру проекта и автоматизирует многие шаги жизненного цикла разработки. Maven задаёт единые соглашения по структуре проекта и процессам сборки, что упрощает совместную работу команд и обеспечивает повторяемость сборки.

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

Для кого это руководство

Это руководство полезно для:

  • Разработчиков, которым нужен стабильный инструмент сборки для Java-проектов.
  • Системных администраторов и DevOps-инженеров, которые готовят окружения разработчиков или CI-серверы.
  • Тим-лидов, которым важна консистентность сборки между проектами.

Коротко: если вы работаете с Java-проектами и используете Debian 11 — это пошаговое руководство для вас.

Требования перед установкой

  • Сервер или VPS с Debian 11
  • Права root или пользователь с sudo
  • Рабочее подключение к интернету для загрузки пакетов и архива Maven
  • Базовые навыки работы с терминалом

Важно: перед началом убедитесь, что пакетный индекс обновлён.

sudo apt-get update && sudo apt-get -y upgrade

Установка Java (OpenJDK 11)

Почему Java необходима: Maven написан на Java и выполняет плагины в JVM, поэтому на машине должна быть установлена JDK.

Debian 11 поддерживает JDK 11 и 17. Некоторые устаревшие плагины могут некорректно работать с Java 17, поэтому в этом руководстве используется OpenJDK 11.

Проверьте текущую версию Java:

java -version

Если Java не установлена или нужно перейти на OpenJDK 11, выполните:

sudo apt install -y openjdk-11-jdk

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

java -version

Вы должны увидеть строку с версией Java 11. Если требуется выбрать альтернативную установленную версию, используйте update-alternatives (см. раздел устранения неполадок).

Загрузка и установка Apache Maven 3.8.2

В этом примере используется сборка Apache Maven 3.8.2, скачанная с архива Apache. При желании замените ссылку на более новую версию, проверив официальные страницы загрузок.

Скачайте архив:

curl -O https://archive.apache.org/dist/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz

Распакуйте архив и переместите в /opt:

sudo tar -zxvf apache-maven-3.8.2-bin.tar.gz
sudo mv apache-maven-3.8.2 /opt/maven

Проверьте содержимое:

ls /opt/maven

В каталоге /opt/maven должен появиться подкаталог bin с исполняемыми файлами Maven.

Настройка переменных окружения

Чтобы команда mvn была доступна всем пользователям в оболочке bash, создайте скрипт в /etc/profile.d:

sudo nano /etc/profile.d/maven.sh

Вставьте в файл следующие строки:

export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
export M2_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

Сохраните и закройте файл (Ctrl+O, Enter, Ctrl+X).

Примените изменения:

source /etc/profile.d/maven.sh

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

mvn -version

Ожидаемый результат: информация о версии Maven и используемой JDK.

Очистка скачанного архива

Чтобы освободить место, можно удалить скачанный tar.gz:

sudo rm apache-maven-3.8.2-bin.tar.gz

Пример создания проекта Maven

Для быстрого старта можно создать проект из шаблона archetype:

mvn archetype:generate -DgroupId=com.example.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Этот пример создаст каталог my-app с базовой структурой Maven и примером кода.

Пример вывода: успешное создание проекта Maven

Альтернативные варианты установки

  1. Установка через apt (менее актуальные версии):
sudo apt update
sudo apt install maven

Преимущество: простота и интеграция с пакетным менеджером. Недостаток: в репозиториях может быть устаревшая версия Maven.

  1. SDKMAN! (управление версиями JDK и инструментов):
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install maven

Преимущество: удобное переключение между версиями Maven и JDK для пользователя. Недостаток: устанавливается в пользовательский профиль, не подходит для системной установки для всех пользователей.

  1. Docker-контейнеры: запускайте Maven внутри контейнера maven:3.8.2-jdk-11 для изолированных сборок в CI.

Проверка целостности и безопасность (рекомендации)

  • Скачивайте архивы с официального сайта Apache или с архивов Apache. Для продакшен-серверов дополнительно проверяйте SHA или подписи GPG, если они доступны.
  • Установите права владельца и группы для /opt/maven, если это системная установка, чтобы исключить несанкционированные изменения:
sudo chown -R root:root /opt/maven
sudo chmod -R 755 /opt/maven
  • Ограничьте доступ к скриптам профиля, если это требуется по политике безопасности.

Устранение неполадок

Проблемы и решения:

  • mvn: команда не найдена

    • Убедитесь, что /etc/profile.d/maven.sh создан и выполнен: source /etc/profile.d/maven.sh
    • Перезайдите в сессию или перезапустите терминал.
  • Неправильная версия Java

    • Просмотрите установленные альтернативы:
sudo update-alternatives --config java
  • Убедитесь, что JAVA_HOME указывает в /etc/profile.d на корректный путь.

  • Права доступа к /opt/maven

    • Установите корректного владельца и права (см. раздел безопасность).
  • Плагины Maven не работают с Java 17

    • Попробуйте использовать JDK 11 или обновить плагины/зависимости проекта.

Контроль приёмки установки (Критерии приёмки)

  1. Команда mvn -version возвращает версию Maven и JDK без ошибок.
  2. Создан проект из archetype и успешно выполнен mvn package внутри каталога проекта.
  3. Переменные JAVA_HOME и M2_HOME установлены и доступны в сессии.
  4. Права на /opt/maven корректны и соответствуют требованиям безопасности организации.

Откат и удаление Maven

Если нужно удалить установленный вручную Maven и откатить изменения:

sudo rm -rf /opt/maven
sudo rm /etc/profile.d/maven.sh

После удаления выйдите из сессии и войдите снова, либо выполните source /etc/profile.d/* чтобы обновить окружение.

Роли и чек-листы

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

  • Проверить mvn -version
  • Создать тестовый проект и выполнить mvn test
  • Убедиться, что IDE (IntelliJ/VS Code) видит JDK и Maven

Системный администратор/DevOps:

  • Установить Maven в /opt/maven
  • Настроить права и проверить подписи архива
  • Добавить установку в конфигурацию образа/инфраструктурный код

Тим-лид:

  • Согласовать версию Maven и JDK для команды
  • Обновить CI-конфигурацию при смене версии

Советы по миграции и совместимости

  • Перед обновлением Maven или JDK прогоняйте сборку и набор тестов в тестовом окружении.
  • Проверяйте совместимость плагинов: некоторые плагины, особенно очень старые, могут требовать Java 8 или не работать с Java 17.
  • Для мультиверсионной среды используйте SDKMAN! или контейнеры Docker/CI для предсказуемости сборок.

Ментальные модели и heuristics

  • Разделяй окружение разработки и окружение сборки: локальная установка может отличаться от CI.
  • Версии инструментов фиксируйте в документации проекта и в CI-конфиге.
  • Для командной работы выбирайте системную установку в /opt для единообразия.

Мини-руководство по безопасности в CI

  • Не храните приватные ключи или токены в settings.xml без шифрования.
  • Используйте серверные хранилища секретов и переменные окружения в CI-пайплайнах.
  • Ограничьте доступ к артефактам и внутренним репозиториям (Nexus/Artifactory).

Частые вопросы и ответы (коротко)

Q: Можно ли поставить Maven через apt? A: Да, но версия может быть старой. Для контроля версий лучше ставить вручную или через SDKMAN!.

Q: Где хранится локальный репозиторий зависимостей? A: По умолчанию в ~/.m2/repository. Путь можно изменить в ~/.m2/settings.xml.

Q: Как обновить Maven до новой версии? A: Скачайте новую сборку, распакуйте в отдельную папку, обновите /etc/profile.d/maven.sh на новый путь или используйте версионирование через SDKMAN!.

Короткая методология внедрения в команде

  1. Выберите рекомендованные версии JDK и Maven.
  2. Подготовьте образ или скрипт установки (Ansible, Dockerfile).
  3. Документируйте шаги и критерии приёмки.
  4. Обновляйте CI-конфиги параллельно с локальными инструкциями.

Заключение

Вы установили Java 11 и Apache Maven 3.8.2 на Debian 11, настроили переменные окружения и проверили работу с mvn -version. В статье также рассмотрены альтернативные способы установки, рекомендации по безопасности, чек-листы для ролей команды и процедуры отката. Следуйте критериям приёмки и тестируйте сборку в CI перед массовым переходом.

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

Краткий план действий:

  • Обновить систему
  • Установить OpenJDK 11
  • Скачать и распаковать Maven в /opt/maven
  • Настроить /etc/profile.d/maven.sh
  • Проверить 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 быстро