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
- 5 простых и эффективных методов Java для строк и массивов
- Подготовка к собеседованию по Java: 15 вопросов к собеседованию по Java
- Многопоточность и параллелизм в Java: лучшие интервью для старших
Начать обсуждение
Вы поклонник предложений Maven? Была ли эта статья полезна? Дайте нам знать в комментариях ниже!