img

Введение в Maven – простой инструмент управления проектами

Привет, всем! Сегодня мы с вами поговорим о 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-проекте. 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Программирование
Скидка 25%
Java-разработчик с нуля
Освойте backend-разработку и программирование на Java, фреймворки Spring и Maven, работу с базами данных и API. Создайте свой собственный проект, собрав портфолио и став востребованным специалистом для любой IT компании
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Python — один из самых популярных языков программирования для анализа данных и Data Science. Почему? Всё дело в его простоте, ог
img
В этой статье обсудим один из важнейших аргументов функции, который ТЫ, мой друг, будешь использовать в каждом своем боте.  Ты с
img
Введение    Настало время глубже погрузиться во взаимодействие человека с ботом. Сегодня изучим декоратор message_handler(). Узн
img
Погружение в aiogram (#5 Отправка стикеров)   Введение   Продолжаем изучать функционал библиотеки aiogram для работы с Telegram
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
НОВОГОДНЯЯ РАCПРОДАЖА
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59