Установка maven
Мы уже научились писать маленькие программы, поэтому теперь будем учиться писать большие. Как известно, чем больше и сложнее программа, тем больше за ее разработку платят денег:) И начнем с небольшой предыстории…
С ростом размера программ разработчики столкнулись с двумя новыми для себя обстоятельствами:
- Над одной программой работает большое количество людей.
- Нет такого человека, который бы знал весь код программы.
Очень часто начали возникать ситуации, когда программист фиксил баг в одном месте программы и при этом ломал что-то в другом. В release documentation даже появилась такая шутка:
Тогда же придумали два подхода к решению этой проблемы: технический и менеджерский.
Технический подход заключался в том, что программы разбивали на части: библиотеки и модули. Каждый такой модуль был небольшим кирпичиком из которых потом выстраивались большие проекты. Библиотеки же – это такие универсальные компоненты, которые могут использоваться в разных программах.
Менеджерский подход был еще интереснее – они ограничивал количество людей, которые могут работать над одним проектом/библиотекой. Эмпирически даже вывели правило: команда должна быть настолько большой, чтобы «ее можно было накормить двумя пиццами» . Обычно это означает, что если над проектом работает более 8 человек, то его нужно разделить на два проекта.
В сообществе Java-разработчиков популярным стало написание библиотек на все случаи жизни и выкладывание их в общий доступ. Таким образом, Java-программисты могли не писать снова один и тот же код (который зачастую был сыроват и содержал баги), а пользоваться готовыми и проверенными решениями.
Дополнительным стимулом стало то, что язык Java получил большую популярность при написании серверных решений (работал на бэкенде). Во-первых, у серверного ПО более высокие требования к надежности, и использование проверенных временем библиотек всегда предпочтительнее, чем написание своего кода.
Во-вторых, у серверов практически нет ограничений на размер кода. Разработчик мобильного приложения старается впихнуть его в 10 мегабайт, десктопного приложения – в 100 мегабайт. А бэкенд-разработчик на Java может напихать в проект несколько десятков гигабайт библиотек и ему слова никто не скажет 🙂
Это, кстати, не шутка. Легко можно встретить бэкенд-проект из нескольких десятков модулей и с парой сотен библиотек. Вот только описывать (и изменять!) сценарии сборки таких проектов стало чрезвычайно трудно.
1.2 Знакомство с Maven
Предшественником Maven’а был Ant, а наследником является Gradle. Но именно Maven развил и довел до совершенства три перечисленных стандарта, а также регламентировал их взаимодействие. Именно он вывел работу Java-сообществ на новый уровень. Давай же посмотрим на него подробнее.
Технически Maven – это специальная программа/сервис, основная цель которой управлять процессом сборки проектов. Ее можно просто скачать в виде архива и распаковать в любую директорию. Специальный установщик для этого не нужен.
Графического интерфейса у нее нет – все команды отдаются ей с помощью консоли. Чтобы еще более комфортно с ней работать, рекомендуется прописать в своей ОС специальные переменные окружения (environment variables).
Так же у Maven есть специальный репозиторий (директория/папка), где он хранит библиотеки, которые используются им при сборке проектов. Тебе нужно будет выбрать какую-нибудь папку на диске и назначить ее в качестве репозитория.
Еще из интересного можно отметить наличие глобального Maven-репозитория для всех библиотек, но об этом расскажем немного позже.
1.3 Загрузка и установка Maven
У Maven есть официальный сайт maven.apache.org. Там очень много документации по проекту, так что, если возникнут сложности или дополнительные вопросы – заходи, не стесняйся.
Также на странице downloads (https://maven.apache.org/download.cgi) можно скачать архив с maven (apache-maven-3.8.5-bin.zip). Распакованный архив займет где-то 10 Мб, хотя для локального maven репозитория со временем потребуется несколько сотен мегабайт памяти.
Maven написан на Java и требует JRE не ниже 7 версии, а также прописанные переменные окружения типа JAVA_HOME.
Просто создай на компьютере папку для Maven, например, d:\devtools , и распакуй в нее архив с Maven. В итоге у тебя должна получиться папка типа d:\devtools\maven\bin , где будут находиться основные бинарные файлы проекта.
1.4 Переменные окружения
После этого нужно добавить путь к папке bin из распакованного архива в переменную среды PATH.
Чтобы установить переменную среды (environment variable) в Windows 10, нужно перейти в Панель управления — Система — Дополнительные параметры системы. Затем нажать “Переменные среды”, найти PATH и выбрать “Изменить”, после чего добавить путь d:\devtools\maven\bin в конец строки. Обрати внимание, путь должен вести именно к папке bin.
В ОС на основе Unix переменную среды можно добавить консольной командной:
export PATH=/opt/apache-maven-3.8.5/bin:$PATH
Если ты все сделал правильно, то в консоли нужно набрать команду: «mvn -v». В ответ ты увидишь что-то типа:
C:\Users\Zapp>mvn -v Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200) Maven home: T:\apache-maven-3.0.5\bin\.. Java version: 1.8.0_65, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.8.0_65\jre Default locale: en_US, platform encoding: Cp1251 OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
1.5 Локальный репозиторий Maven
Также ты можешь задать специальную папку, где Maven будет хранить jar-библиотеки, которые будет использовать при сборке проектов. Такую папку называют – локальный maven репозиторий.
Если такая папка не задана, то Maven создаст ее в домашней директории текущего пользователя. У меня это директория: C:\Users\Zapp\.m2
Папка имеет довольно специфическое имя “.m2”. Хотя пользователей Linux оно не пугает – там это довольно распространенный подход к именованию различных ”репозиториев” и/или любого другого хранилища служебной информации.
Важно! Не располагай Maven в системных папках, так как при работе ему понадобятся права на запись в эти папки, что может вызывать нездоровый интерес антивируса или операционной системы.
Maven до версии 3.5 требовал указать переменную окружения с именем M2_HOME, но теперь это не нужно.
Java как установить maven
В данной статье вы найдёте инструкцию по установке Maven из архива, настройке переменных окружения для возможности запуска команд Maven в командной строке операционной системы Windows.
Требования #
Предварительно у вас должен быть установлен JDK версии не ниже 8 и настроена переменная окружения $JAVA_HOME . Проверьте в PowerShell командами java —version и echo $env:JAVA_HOME . На скриншоте пример вывода, который удовлетворяет дальнейшим действиям.
Если у вас ошибки и команда java не найдена, а JAVA_HOME ничего не выводит, скачайте и установите JDK. На странице необходимо выбрать операционную систему, скачать файл MSI и запустить. Это обычный установщик, в котором достаточно будет нажать «Далее».
После установки закройте все окна PowerShell и откройте заново, попробуйте выполнить команды. Перезагрузку тоже можете попробовать 🙂
⏬ Скачивание архива #
Перейдите на официальный сайт проекта Maven и скачайте архив Downloading Apache Maven На странице найдите секцию Files и скачайте Binary Zip Archive.
📤 Распаковка архива #
Найдите файл со скачанным архивом. Нажмите на него правой клавишей мыши и выберите «Извлечь всё…» (Extract All…).
В предложенном окне установите путь, куда будет распакован архив. Вы можете распаковать в удобное для вас место. При этом в пути не должно быть пробелов, кириллицы или специальных символов.
В примере будем устанавливать в корень диска C:\ , можете вписать или выбрать через кнопку «Обзор…» (Browse…).
Нажмите кнопку «Распаковать» (Extract).
☑️ Проверка запуска #
Содержимое архива представляет собой набор библиотек и исполняемых файлов. Мы можем попробовать его запустить. Для этого откройте командную строку (Windows PowerShell) и перейдите в директорию, в которую распаковали архив. Если распаковали в C:, то команда будет cd C:\
Далее посмотрите список файлов и найдите директорию apache-maven-3.x.x . У вас версия может отличаться, так как Maven активно обновляется. В примере это директория apache-maven-3.8.6 .
Перейдите в директорию apache-maven-3.8.6 и далее в директорию bin . Это можно сделать одной командой:
Выполните команду ./mvn -version . Если переменная окружения JAVA_HOME ведёт на JDK, то вы увидите версию Maven:
Если у вас выводится версия, значит, Maven готов к работе. Если нет, то убедитесь, что находитесь в директории bin, там есть файл mvn и выполнены требования перед установкой.
🏗️ Настройка PATH #
Конечно, на данном этапе уже можно пользоваться Maven, но придётся постоянно писать полный путь до файла mvn, и это неудобно. Для того чтобы команда работала в любой директории, необходимо добавить папку C:\apache-maven-3.8.6\bin в системную переменную PATH . Это важная переменная, в ней перечислены директории, в которых Windows ищет исполняемые файлы, когда мы набираем в консоли имя файла. Чтобы посмотреть её содержание, выполните команду в PowerShell:
В результате будет выведена строка с директориями, разделёнными точкой с запятой.
Например, если мы в терминале наберём команду calc , откроется приложение «Калькулятор». Так как операционная система прошлась по очереди по всем папкам и нашла в одной из них приложение calc.exe , его и запустила. Операционная система всегда запускает первый попавшийся подходящий исполняемый файл, даже если их несколько в разных директориях. Таким же образом директории проходятся по очереди записи в строке PATH.
Это значит, что нам надо добавить в этот список и папку с исполняемым файлом mvn.
Сделайте это из консоли. Только на всякий случай сохраните в текстовый файл все директории, которые получили командой echo $env:PATH . Если вы ошибётесь в команде и удалите данные, то сможете восстановить их из файла. Чтобы сохранить сразу в файл, используйте команду $env:PATH >> path.txt . Значение сохранится в папке, в которой вы находитесь.
Команда для добавления директории bin:
setx PATH «$env:PATH;C:\apache-maven-3.8.6\bin»
❗ Не ставьте в конце пути \ (обратный слеш), так как это будет экранировать кавычку, и кавычка станет частью строки.
Эта команда записывает в PATH cамо значение PATH и добавляет нашу строку. Важно на забыть поставить разделитель ; в начале нашего пути до bin.
По сути, мы склеиваем текущее значение с нашей директорией и записываем в эту же переменную.
После выполнения команды закройте все терминалы и откройте заново. Проверьте, что сохранилось в PATH echo $env:PATH .
Если путь до Maven есть в списке — время проверить работу команды mvn.
Теперь вы можете запускать mvn в любой директории, для этого вам не будет требоваться среда разработки.
🎉 Поздравляю с успешной установкой!