Привет, всем! Сегодня мы с вами поговорим о Maven.
Мы начнем с небольшого введения и перечислим некоторые плюсы его использования. После чего мы посмотрим, как его можно установить, а также разберем несколько технических терминов, которые нужно знать новичку. Итак, давайте начнем!
Что такое Maven?
Apache Maven – это программное обеспечение, предназначенное для управления проектами, и, можно сказать, что это инструмент для сборки проектов. В его основе лежит концепция объектной модели проекта (POM – Project Object Model). Maven может управлять сборкой проекта, отчетностью и документацией за счет основной информации.
Apache Maven – это система сборки, и его задача аналогична Ant – такой же выдающейся системы сборки. Это инструмент управления проектами по разработке программного обеспечения, который привнес в нашу жизнь новую концепцию объектной модели проекта (POM). С помощью Maven разработчики могут автоматизировать процесс создания исходной папки, сортировки и тестирования, а также упаковки и развертывания конечного продукта. Таким образом, вы можете уменьшить количество этапов основного процесса и выполнить сборку за один этап.
Для чего нужен Maven?
Таким образом, Maven упрощает и стандартизирует процесс сборки проекта. Он позволяет работать совместно над одной задачей и над отдельными задачами, а также с легкостью решать вопросы, связанные с компиляцией, распространением и документацией. Maven увеличивает шансы на повторное использование, а также учитывает большое количество задач, связанных со сборкой проекта. Он оказывает содействие на различных этапах, например, при добавлении jar-файлов в библиотеки проекта, составлении отчетов, выполнении тестов Junits, создании jar, war, ear-файлов в рамках проекта и прочего.
Важнейшим аспектом Maven является то, что он используется как репозиторий для управления jar-файлами.
Помимо всего прочего, Maven можно использовать для сборки и управления проектами, написанными на таких языках программирования, как C#, Ruby и др.
Давайте взглянем на следующие плюсы использования Maven:
Соглашение по конфигурации
- У него довольно минимальная конфиигурация
- У него есть контролируемые зависимости
Возможность многочисленных/повторных сборок
- Автоматизация упрощает процесс сборки
Управление плагинами, тестирование и разработка
- Можно запускать тесты Junit и прочие интеграционные тесты
- Процесс разработки становится более прозрачным
Меры предосторожности для проверки состояния каждой сборки
- Позволяет избежать несогласующихся настроек
- У всех проектов стандартная унифицированная инфраструктура
Архитектура Maven
Если вы сможете понять то, как устроена архитектура Maven, в основе которой лежит POM, то вы сможете понять то, как проходит сборка на понятийном уровне. Вот так выглядит архитектура Maven:
Его архитектура отображает полный жизненный цикл сборки, в том числе жизненные циклы, этапы, цели, плагины и прочие задачи, которые возникают еще в самом начале.
В архитектуре Maven перечислены следующие этапы:
- Первый этап: необходимо настроить Maven, который использует для этого файл pom.xml. Все конфигурации Maven хранятся в этом POM-файле.
- Второй этап: необходимо загрузить зависимости pom.xml из основного репозитория в локальный.
- Третий этап: после того, как пользователь начнет свою работу в Maven, он сам начнет предлагать ему различные настройки по умолчанию, так что не нужно добавлять все конфигурации в файл pom.xml.
Жизненный цикл сборки в Maven
Жизненный цикл сборки – это последовательность шагов, которые необходимы для того, чтобы произвести сборку проекта.
Вот так выглядит схема этапов жизненного цикла сборки:
Вот самые важные этапы:
- Проверка: подтверждаем тот факт, что для сборки есть вся необходимая информация.
- Компиляция: исходный код компилируется.
- Компиляция для тестирований: сборка исходного кода для тестирований.
- Тестирование: запускаются модульные тесты.
- Упаковка: скомпилированный исходный код преобразуется в доступный формат (jar, war и т.д.).
- Установка: программное обеспечение устанавливается в локальном репозитории.
- Развертывание: копируем пакет в удаленный репозиторий.
Существует три встроенных в Maven жизненных цикла:
- Default (стандартный): от этапа проверки до этапа развертывания необходимо пройти 21 этап.
- Clear (очистка): проект очищаются надлежащим образом, и все файлы, которые были созданы с рамках предыдущей сборки, удаляются. Здесь необходимо пройти три этапа.
- Site (веб-сайт): на этом этапе создается документация для веб-сайта проекта; здесь необходимо пройти четыре этапа.
Репозиторий в Maven
В Maven есть три типа репозитория:
- Локальный репозиторий: репозитории хранятся на локальном компьютере.
- Центральный репозиторий: центральный репозиторий – это сообщество Maven, и Maven загружает оттуда все зависимости по мере необходимости.
- Удаленный репозиторий: Maven загружает зависимости с веб-сервера.
Преимущества Maven
Maven – это один самых популярных инструментов компании Apache Group с открытым исходным кодом, предназначенных для автоматизации сборки и управления. У него есть огромное число преимуществ, которые так нравятся разработчикам программного обеспечения и корпорациям, например,
- Возможность администрирования всех процессов управления проектом, с том числе процессом создания, документирования, выпуска и распространения.
- Уменьшение сложности разработки проекта посредством стандартизации структуры проекта.
- Совершенствование проектов и повышение эффективности процессов разработки.
- Оптимизация качества кода, автоматизация задач, повышение производительности и т.д. за счет интеграции различных плагинов.
- Автоматическая загрузка jar-файлов и прочих зависимостей.
- Упрощение процесса создания проекта разработчиком в самых разных обстоятельствах; отсутствие беспокойства по поводу зависимостей, рабочих процессах и т.д.
- Его система управления зависимостями существенно упрощает интеграцию внешних библиотек, уменьшая при этом вероятность возникновения конфликтов версий и обеспечивая согласованность и надежность сборки.
- Оптимизация процесса разработки, что, в свою очередь, снижает человеческий фактор и повышает эффективность.
Путем эффективного использования этих преимуществ, команды разработчиков могут повысить свою продуктивность и улучшить качество кода. Кроме того, они могут начать поставлять программное обеспечение более высокого качества, привлекая при этом к работе меньшее количество разработчиков.
Настройка среды Maven
Для того, чтобы установить Maven, вам нужно выполнить следующее:
- Проверьте в вашей системе наличие установленного Java; если его нет, установите.
- Проверьте наличие установленной переменной среды Java; если ее нет, установите.
- Загрузите Maven.
- Разархивируйте загруженный файл (все файлы должны быть в одной папке).
- Добавьте каталог bin созданной папки apache-maven-3.6.2 к переменной среды PATH и системной переменной.
- Откройте командную строки и запустите команду mvn –v для того, чтобы выполнить установку.
На этом все.
Мы не хотели делать эту статью слишком простой и, к тому же, нудной, поэтому ниже вы можете найти YouTube-видео с руководством по настройке Maven. В нем вы можете изучить более подробную инструкцию по установке.
Это руководство для начинающих, а, значит, в нем должны быть некоторые технические термины, которые непосредственно связаны с Maven. Вот некоторые самые важные термины:
Локальный репозиторий Maven
Локальный репозиторий – это папка, в которой Maven хранит все jar-файлы проекта, его библиотеки, зависимости и т.д. По умолчанию, имя папки устанавливается как «.m2», а расположена она в «Libraries/Documents/.m2».
Центральный репозиторий Maven
Центральный репозиторий – это то место, откуда Maven загружает все библиотеки зависимостей проекта для дальнейшего использования. Сначала Maven проверяет папку локального репозитория .m2, и если он не находит в ней нужную библиотеку, то обращается к центральному репозиторию и загружает ее оттуда в локальный репозиторий, и это касается любой библиотеки, вовлеченной в проект.
POM
POM расшифровывается как «Project Object Model» и переводится как «объектная модель проекта». В этой модели содержится вся информация о проекте и параметры конфигурации, которые необходимы Maven для разработки проекта. В ней содержатся значения по умолчанию для большинства проектов. Вот некоторые структуры, которые могут быть определены в рамках POM: зависимости проекта, исполняемые плагины и, конечно, профили сборки.
В создании файла pom.xml участвуют следующие элементы:
- project – это корневой элемент файла pom.xml.
- modelVersion – версия модели POM, с которой вы работаете.
- groupId – идентификатор группы проектов. Это уникальное значение, и, как правило, используется идентификатор, связанный с именем корневого пакета Java.
- artifactId – сообщает название создаваемого вами проекта.
- Version – номер версии проекта. Если у вашего проекта есть несколько версий, то здесь вы можете указать версию вашего проекта.
Зависимость
Зависимости – это библиотеки, которые необходимы проекту. Как и jar-файлы Log4j и Apache Poi, jar-файлы Selenium – это несколько библиотек, которые нужны проекту. Зависимости указываются в pom.xml следующим образом:
<dependencies>
<dependency>
<groupId>com.companyname.groupname</groupId>
<artifactId>App-Core-lib</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
Плагин Surefire
Плагин Surefire нужен на этапе тестирования жизненного цикла сборки для того, чтобы реализовать юнит-тесты приложения. Он формирует отчеты в двух различных форматах: обычном текстовом формате и в формате XML-файла, а также в формате файла HTML. Даже если для формирования отчетов вы используете фреймворк Junits или TestNG, вам все равно нужно установить этот плагин, поскольку Maven с его помощью ищет тесты.
Практическое применение Maven
Когда вы работаете над каким-то конкретным Java-проектом, и у него есть большое количество зависимостей, сборок, требований, то работа со всем этим может оказаться довольно сложной и утомительной. Именно поэтому использование инструментов, способных выполнять эту работу за вас, может быть очень даже полезным.
Maven – это именно такой инструмент. Он управляет сборкой и может выполнять такие задачи, как добавление зависимостей, использование путей к классу, автоматическое создание war и jar-файлов и многое другое.
Заключение
Этот инструмент может оказаться действительно полезным в разработке проектов. Успехов вам в вашем Java-проекте.