Учебники

Maven — Обзор

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

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

Maven предоставляет разработчикам способы управления следующим:

  • Строит
  • Документация
  • Составление отчетов
  • зависимости
  • СДМ
  • релизы
  • распределение
  • Список рассылки

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

Maven Evolution

Первоначально Maven был разработан для упрощения строительных процессов в проекте Jakarta Turbine. Было несколько проектов, и каждый проект содержал немного разные файлы сборки ANT. JAR были проверены в CVS.

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

Задача

Основная цель Maven — предоставить разработчику следующее:

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

  • Плагины или инструменты, которые взаимодействуют с этой декларативной моделью.

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

Плагины или инструменты, которые взаимодействуют с этой декларативной моделью.

Структура и содержимое проекта Maven объявляются в XML-файле pom.xml, называемом Project Object Model (POM), который является фундаментальной единицей всей системы Maven. В последующих главах мы подробно объясним POM.

Соглашение по конфигурации

Maven использует Convention over Configuration , что означает, что разработчики не обязаны сами создавать процесс сборки.

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

В качестве примера в следующей таблице приведены значения по умолчанию для файлов исходного кода проекта, файлов ресурсов и других конфигураций. Предполагая, что $ {basedir} обозначает местоположение проекта —

Вещь По умолчанию
исходный код $ {Имя_базовой_папки} / SRC / Основной / Java
Ресурсы $ {Имя_базовой_папки} / SRC / основные / ресурсы
тесты $ {Имя_базовой_папки} / SRC / тест
Соответствующий байт-код $ {Имя_базовой_папки} / целевая
распространяемый JAR $ {Имя_базовой_папки} / целевые / классы

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

Разработчики могут создавать любой проект Maven без необходимости понимать, как работают отдельные плагины. Мы подробно обсудим плагины Maven в следующих главах.

Простая настройка проекта в соответствии с лучшими практиками.

Последовательное использование во всех проектах.

Управление зависимостями, включая автоматическое обновление.

Большое и растущее хранилище библиотек.

Расширяемый, с возможностью легко писать плагины на Java или языках сценариев.

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

Сборки на основе моделей — Maven может встраивать любое количество проектов в предопределенные типы вывода, такие как jar, war, metadata.

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

Публикация управления выпуском и распространением — без дополнительной настройки maven интегрируется с вашей системой управления версиями, такой как CVS, и управляет выпуском проекта.

Обратная совместимость — вы можете легко перенести несколько модулей проекта в Maven 3 из более старых версий Maven. Он также может поддерживать более старые версии.

Автоматическое управление версиями для родителей — нет необходимости указывать родителя в субмодуле для обслуживания.

Параллельные сборки — анализирует график зависимости проекта и позволяет вам строить модули расписания параллельно. Используя это, вы можете добиться повышения производительности на 20-50%.

Улучшение отчетов об ошибках и целостности — Maven улучшил отчеты об ошибках, и он предоставляет вам ссылку на вики-страницу Maven, где вы получите полное описание ошибки.