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

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 и примером кода.

Альтернативные варианты установки
- Установка через apt (менее актуальные версии):
sudo apt update
sudo apt install mavenПреимущество: простота и интеграция с пакетным менеджером. Недостаток: в репозиториях может быть устаревшая версия Maven.
- SDKMAN! (управление версиями JDK и инструментов):
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install mavenПреимущество: удобное переключение между версиями Maven и JDK для пользователя. Недостаток: устанавливается в пользовательский профиль, не подходит для системной установки для всех пользователей.
- 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 или обновить плагины/зависимости проекта.
Контроль приёмки установки (Критерии приёмки)
- Команда mvn -version возвращает версию Maven и JDK без ошибок.
- Создан проект из archetype и успешно выполнен mvn package внутри каталога проекта.
- Переменные JAVA_HOME и M2_HOME установлены и доступны в сессии.
- Права на /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!.
Короткая методология внедрения в команде
- Выберите рекомендованные версии JDK и Maven.
- Подготовьте образ или скрипт установки (Ansible, Dockerfile).
- Документируйте шаги и критерии приёмки.
- Обновляйте 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 и собрать тестовый проект
Спасибо за использование руководства. Удачной сборки и успешных релизов!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента