Баннер мобильный (1) Пройти тест

Maven

Глоссарий

27 марта 2023

Поделиться

Скопировано

Содержание

    Maven — это инструмент для автоматической сборки проектов на основе описания их структуры в специальных файлах на языке POM (Project Object Model) — подмножестве XML.

    Чаще всего Maven используют Java-разработчики, однако после установки дополнительных плагинов его также можно применять для работы на PHP, Ruby, Scala, C/C++ и Groovy.

    Логотип системы сборки Apache Maven

    Зачем разработчики используют Maven

    Функциональность системы сборки Maven шире, чем компилятора исходного кода. В процессе работы приложения Apache Maven вызывает компилятор и при этом автоматически управляет зависимостями и ресурсами, например:

    • загружает подходящие версии пакетов;
    • размещает изображения, аудио- и видеофайлы в нужных папках;
    • подгружает сторонние библиотеки. 

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

    • может использоваться в IDE — Eclipse, IntelliJ IDEA, NetBeans и других;
    • не зависит от операционной системы;
    • не требует установки — архив с программой можно распаковать в любой директории;
    • все необходимые параметры имеют оптимальные настройки по умолчанию;
    • упрощает организацию командной работы и документирование;
    • запускает библиотеки для модульного тестирования;
    • обеспечивает соблюдение стандартов;
    • имеет огромное количество плагинов и расширений.

    Также существуют две другие системы сборки Java-приложений — Ant и Gradle, однако Maven пользуется наибольшей популярностью и является стандартом индустрии.

    Установка и настройка среды Maven

    Установочный файл системы сборки Apache Maven можно скачать с официального сайта. Программа займет около 10 Мб дискового пространства, но для создания локального репозитория потребуется не менее 500 Мб.

    Для запуска системы на компьютере пользователя должен быть установлен пакет JDK, а в переменной окружения PATH указан путь к maven/bin. Если архив с Maven распаковали, предположим, в директорию C:\Utils, то путь будет выглядеть так: C:\Utils\maven\bin.

    Чтобы установить переменную в Windows 10, нужно перейти в Панель управления Система Дополнительные параметры системы. Затем нажать Переменные среды, найти PATH и выбрать Изменить, после чего добавить путь C:\Utils\maven\bin в конец строки.

    Локальный репозиторий

    Репозиторий — это место для хранения и обновления файлов проекта. Директория на компьютере разработчика, в которой Maven хранит все jar-файлы отдельного проекта, библиотеки и необходимые модули (зависимости), называется локальным репозиторием. По умолчанию он располагается в папке Libraries\Documents\.m2.

    Центральный репозиторий

    Это общее онлайн-хранилище, здесь находятся все библиотеки, плагины и модули, созданные разработчиками сообщества Maven. Если во время сборки проекта система не находит нужную библиотеку (зависимость) в локальном репозитории разработчика, она автоматически обращается в центральный репозиторий Maven.

    Maven POM

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

    Для описания структуры проектов Apache Maven применяет разновидность языка XML под названием POM (сокращение от Project Object Model, «объектная модель проекта»). Основные теги POM:

    • project базовый тег, содержит всю информацию о приложении;
    • modelVersion генерируется автоматически, текущая версия — 4.0.0;
    • groupId пакет, к которому принадлежит приложение, с добавлением имени домена;
    • artifactId уникальный ID артефакта;
    • version создается и обновляется автоматически, во время разработки к номеру версии добавляется суффикс -SNAPSHOT.

    Информация, заключенная в тегах, является минимально необходимым описанием проекта (minimal POM), представленным в файле pom.xml. Пример POM-файла выглядит так:<project> <modelversion>4.0.0</modelversion> <groupid>com.sample.app</groupid> <artifactid>new-app</artifactid> <version>1.0-SNAPSHOT</version> </project>

    Зависимости (Dependency)

    Зависимостями разработчики называют сторонние библиотеки и модули, которые влияют на работоспособность программы. Maven обеспечивает автоматическое управление зависимостью — загружает модули и генерирует их описание в объектной модели проекта. В системе POM используются два тега — dependencies и dependency. Пример описания выглядит так:<dependencies> <dependency> <groupid> com.ourcompany.app </groupid> <artifactid>our-first-app</artifactid> <version>2.0</version> <type>war</type> <scope>runtime</scope> </dependency> <dependency> <groupid> com.ourcompany.app </groupid> <artifactid>our-second-app</artifactid> <version>1.0</version> <type>bar</type> <scope>runtime</scope> </dependency> </dependencies>

    В нем тег <scope>runtime</scope> указывает на то, что зависимость относится к запуску приложения и не требуется для компиляции. В случае использования зависимости для компиляции тег имел бы вид <scope>compile</scope>, а для тестирования приложения — <scope>test</scope>.

    Плагин Surefire для тестирования в системе Maven

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

    • текст без форматирования .txt;
    • файл .xml.

    Если разработчику нужны отчеты в HTML-формате, можно установить дополнительное расширение для Surefire — Maven Surefire Report Plugin. По умолчанию отчеты во всех форматах сохраняются в папке /target/surefire-reports/. Плагин Surefire способен выполнять тестирование проекта как самостоятельно, так и в интеграции с другими популярными фреймворками для проведения тестов Java-приложений, например TestNG и Junit.

    Maven упрощает все этапы разработки и сборки

    Архетипы и структура проектов

    Архетипами в среде Maven называются шаблоны. Образцы шаблонов есть на официальном сайте проекта. С их помощью можно сгенерировать прототипы нескольких проектов — простого приложения, плагина, сайта. Список доступных архетипов получают, выполнив в консоли команду:

    mvn archetype:generate

    Один из стандартных шаблонов представляет собой традиционнуюпрограмму «Hello, world!». Чтобы скачать архетип в свой локальный репозиторий, нужно выполнить команду:

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

    Скачивание первого шаблона может занять продолжительное время — это происходит потому, что система сборки проверяет доступные обновления и плагины. По умолчанию приложение называется my-app. Перейти в его корневую директорию можно с помощью команды:

    cd my-app

    Архетипы позволяют начинающим разработчикам быстро познакомиться с необходимой структурой Java-проектов. В директории my-app находятся папки:

    src/main/java с исходным кодом проекта;

    src/test/java с тестовым кодом.

    Для сборки проекта выполните команду:

    mvn package

    По ней Maven запускает компиляцию артефакта в jar-файл. Готовую программу запускают командой:

    java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

    В результате на экране появится приветствие:

    Hello, world!

    Intellij IDEA позволяет создавать и запускать проекты без использования консоли. Узнать, как это сделать, можно из видео.https://www.youtube.com/embed/pt3uB0sd5kY Title Работа с Intellij IDEA. Источник

    Maven многократно упрощает процесс разработки и сборки на всех этапах — от структурирования проекта и тестирования кода до «упаковки» готового артефакта. Умение работать с системой сборки необходимо любому Java-разработчику. 

    Поделиться

    Скопировано

    0 комментариев

    Комментарии