Maven — это де-факто самый популярный инструмент сборки для Java-проектов. Но Maven — это гораздо больше, чем инструмент сборки. Фактически, его можно использовать для управления целым проектом.

Как начинающий специалист в области компьютерных наук, вы неизбежно столкнетесь с POM-файлами Maven, которые может быть трудно понять, не зная основ Maven.

В этом руководстве вы познакомитесь с такими понятиями Maven, как плагины, цели, зависимости и многое другое.

Сегодня мы узнаем:

  • Что такое Мавен?
  • Существенные особенности Maven
  • Плагины Maven
  • Мавен ПОМ
  • Жизненный цикл Мавена
  • Репозиторий Maven
  • Как установить Мавен
  • Расширенные концепции Maven, которые следует изучить далее

Что такое Мавен?

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

Maven — де-факто самый популярный инструмент для сборки и управления Java-проектами. Maven основан на концепции объектной модели проекта (POM), которая помогает автоматически управлять сборкой проекта, документацией и отчетами из центральной части информации.

С годами Maven стал очень популярным и определил общий интерфейс для создания программного обеспечения. Maven реализует плагины, которые можно получить из репозитория Maven.

Проще говоря, Maven — это инструмент для создания проектов на основе Java и управления ими, который значительно упрощает работу Java-разработчиков.

Maven предлагает поддержку для многих задач, в том числе:

  • Легко создавайте проект Java с нуля и без написания сценариев.
  • Легко добавляйте JAR-файлы и зависимости проекта
  • Доступ к информации о проекте, такой как документы журнала, модульные тесты, списки зависимостей и т. д.
  • Обновите центральный репозиторий для файлов JAR и зависимостей.
  • Интеграция проекта Java с системой управления

Когда использовать Maven

Maven Build Tool идеален, когда проект имеет много зависимостей или когда версии зависимостей проекта часто обновляются. Он также хорошо подходит для непрерывной сборки, интеграции и тестирования, а также для создания документации из исходного кода.

Плюсы и минусы Maven

Плюсы:

  • Maven может автоматически добавлять все зависимости проекта, читая файл pom.
  • Добавить зависимость в файл pom очень просто.
  • Maven позволяет легко запускать проект в разных средах, не занимаясь внедрением, сборкой и т. д.

Минусы:

  • Maven необходимо загрузить с подключаемым модулем Maven для IDE.
  • В проект можно добавить только существующие зависимости

Существенные особенности Maven

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

  • Файлы POM: файлы объектной модели проекта (POM) представляют собой XML-файлы, содержащие информацию о проекте и конфигурации. Файлы Maven POM используются для выполнения команд.
  • Зависимости и репозитории. Зависимости — это внешние библиотеки Java, а репозитории — это каталоги для упакованных файлов JAR. Репозиторий Maven.
  • Создание подключаемых модулей. Создавайте подключаемые модули для достижения конкретных целей вашего проекта. Они добавляются в файл POM. Maven предоставляет стандартные плагины, или вы можете реализовать свои собственные.
  • Жизненные циклы, этапы и цели. Жизненный цикл сборки состоит из нескольких этапов сборки, которые представляют собой просто последовательность целей проекта. Жизненный цикл сборки называется командой Maven.
  • Профили сборки. Профили сборки — это набор значений конфигурации, которые позволяют выполнять сборку с различными конфигурациями. Вы добавляете профили сборки в свои файлы POM, используя элементы профиля.

Плагины Maven

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

Некоторые из наиболее распространенных плагинов:

  • Подключаемый модуль компилятора: содержит логику для компиляции
  • Плагин Jar: содержит логику для создания jar-файлов.
  • Подключаемый модуль Surefire: содержит логику для выполнения модульных тестов.

Плагин Maven состоит из целей, которые являются единицей работы. Цель — это действие, которое мы хотим выполнить над проектом, определенным файлом POM. Взгляните на эту диаграмму, чтобы понять, как взаимодействуют эти компоненты:

Мавен ПОМ

Проект Maven описывается файлом POM (объектная модель проекта), который представляет собой декларативное описание вашего проекта Java. POM — это файл XML, который определяет уникальные координаты Maven проекта, зависимости, необходимые плагины, параметры и т. д.

При вызове Maven ищет файл POM в текущей структуре каталогов. Без него будет выдаваться ошибка. Затем Maven читает POM, собирает информацию о конфигурации и выполняет цель.

Некоторые из конфигураций, которые можно указать в POM, — это зависимости проекта, подключаемые модули или цели, которые можно выполнить, профили сборки и т. д.

Вы также можете указать другую информацию, такую ​​как версия проекта, описание, разработчики и списки рассылки.

Давайте посмотрим на минимальную версию файла POM.

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>io.datajek</groupId>
    <artifactId>empty-project</artifactId>
    <version>1</version>

</project

Файл содержит минимальное описание проекта без зависимостей или плагинов. Если вы запустите mvn install в каталоге, содержащем указанный выше файл POM, вы увидите успешную сборку.

Есть несколько элементов, которые мы используем для создания этого файла:

  • проект: корневой элемент нового проекта.
  • modelVersion мы рекомендуем использовать версию 4.0.0
  • groupId: уникальный идентификатор группы проекта.
  • artifactId: дает название проекта.
  • версия: содержит номер версии проекта.

Другие элементы включают зависимости, имя, область действия и упаковку.

Жизненный цикл Мавена

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

Чтобы лучше понять это, давайте рассмотрим пример. Жизненный цикл очистки включает в себя:

  • pre-clean
  • clean
  • post-clean

Фазы жизненного цикла выполняются по порядку, то есть сначала будет выполняться pre-clean, затем clean и, наконец, post-clean.

Если мы запустим чистую фазу в EmptyProject, используя mvn clean, мы можем указать фазу с помощью команды mvn. Когда мы выполняем фазу clean, предыдущая фаза также будет выполняться, если у нее есть какие-либо цели плагина.

Репозиторий Maven

Репозиторий в Maven содержит как артефакты сборки, так и зависимости. В разработке программного обеспечения под артефактом понимаются объекты, которые создаются в процессе, такие как проектные документы, модели данных и схемы рабочих процессов.

Существует два основных типа репозиториев Maven:

  • Локальный репозиторий: каталог, в котором запускается Maven и перехватывает удаленные загрузки.
  • Удаленные репозитории: любой другой тип репозитория. Например, репозиторий, созданный третьей стороной, или HTTP-сервер в вашей компании.

Вообще говоря, локальные репозитории можно оставить в покое, разве что для очистки. Вам нужно будет загрузить удаленные репозитории, которые запускаются при объявлении зависимости.

По умолчанию Maven загружается из центрального репозитория.

Как установить Мавен

Скачать Maven довольно просто. Начните с проверки того, что у вас установлена ​​Java. Проверьте, установлена ​​ли ваша переменная среды Java. Оттуда загрузите Maven с официального сайта.

Вы можете распаковать zip из любой точки вашей системы и добавить каталог bin в переменную среды PATH и системную переменную.

Оттуда cmd и запустите команду mvm -v. При правильной установке будут напечатаны следующие строки:

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T01:19:05+05:30)
Maven home: C:\apache-maven-3.5.3\bin\..
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_151\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

Расширенные концепции Maven, которые следует изучить далее

Теперь у вас должно быть четкое представление о том, что такое Maven и как его использовать в ваших Java-проектах. Maven может значительно упростить процесс сборки и автоматизировать трудоемкие задачи. Но Maven может предложить вам гораздо больше.

Следующие дополнительные концепции Maven вам следует изучить:

  • Управление зависимостями и области видимости в Maven
  • Управление плагинами
  • Мавен Супер ПОМ
  • Агрегация в Maven

Чтобы начать работу с этими передовыми концепциями и получить дополнительную практику с тем, что мы узнали сегодня, ознакомьтесь с курсом Educative Создание проектов Java с помощью Maven. Этот уникальный курс содержит простые в использовании практические упражнения в браузере для изучения таких концепций Maven, как плагины, цели, зависимости и многое другое.

После этих уроков вы сразу же будете уверенно работать с Maven!

Удачного обучения!

Продолжить чтение о Java на сайте Educational

Начать обсуждение

Вы поклонник предложений Maven? Была ли эта статья полезна? Дайте нам знать в комментариях ниже!