lecture_AOP_7_Maven.ppt
- Количество слайдов: 17
Аспектно ориентированное программирование Инструменты для сборки и управления Лекция № 6 Антонов В. В.
Что такое maven? "Maven is a project development management and comprehension tool" с сайта maven. apache. org n n ● инструмент для сборки и управления проектами [на Java] (build tool) ● инструмент для управления ЖЦ проекта ● инструмент для автоматизации
Другие утилиты для сборки проектов n n n shell/bat скрипты ● make ● cmake ● scons ● ant
Почему Maven? на текущий момент одна из самых широко распространенных утилит для сборки в мире Java (загляните в исходники почти любого проекта от apache. org - найдете там pom. xml) n огромный актуальный репозиторий артефактов в репозиториях maven n поддерживается большинством современных IDE (Eclipse, Intelli. J IDEA, Net. Beans и т. д. ) n
Ключевые преимущества декларативный язык описания проекта (POM) n ● автоматическое управление зависимостями n ● огромный, поддерживаемый в актуальном состоянии репозиторий артефактов n ● модульная расширяемая за счет плагинов архитектура, огромное количество плагинов n
Главные недостатки сложность освоения n неочевидность (контринтуитивность) в некоторых моментах n не очень хорошая документация n огромное количество плагинов (трудно сориентироваться) n трудно разобраться если что то пошло не так (возникла ошибка) n необходим доступ в Интернет или собственный репозиторий артефактов n
Установка Maven ● требует наличия на машине JDK версии >=1. 5 n ● скачиваем с сайта проекта http: //apache. maven. org n ● разворачиваем архив n ● прописываем переменную окружения M 2_HOME n ● прописываем путь $M 2_HOME/bin в PATH n ● запуск командой mvn n
Как все это работает?
Еще раз как все ЭТО работает?
Артефакт Что есть Артефакт? Да все что угодно что производит наш проект (jar, war, ear и т. п. ) или использует maven (плагин) n Результатом работы Maven является создание (построение) артефакта, а так же ряд дополнительных действий над ним (тестирование, инсталляция в локальный репозиторий, deployment) n ● Сам артефакт зависит от других артефактов (наших и внешних, плагинов maven) n
Координаты артефакта n n n group. Id artifact. Id [packaging] default jar n ● version в формате mmm. nnn. bbb-ssssss-dd , необязательными являются поля ssssss (спецификатор SNAPSHOT, RELEASE и т. п. ) и dd (номер сборки) n ● [classifier]
Примеры maven координат
POM файл POM - Project Object Model, xml файл, обычно называется pom. xml n POM файл содержит описание нашего проекта (декларативный стиль!) и все специфические его настройки. n Пример минимального POM файла (данный пример работает!!!): n
Минимальные требования к POM Минимально POM файл проекта должен содержать лишь версию модели и координаты артефакта проекта. n
Репозитории Репозиторий maven это файловое хранилище с метаинформацией и быстрым поиском и доступом n ● Бывают двух типов n ○ local ( находятся в ~/. m 2/repository ) n ○ remote (например, стандартный http: //repo 1. maven. org/maven 2 или внутренний репозиторий компании, например, Nexus) n ● используются для хранения и получения зависимостей (dependencies) проекта и плагинов maven n
Lifecycle (жизненный цикл) проекта Существуют три стандартных lifecycles: n ● clean - очистка проекта n ● default - построение проекта из исходных кодов n ● site - построение вторичных артефактов (документация, wiki, сайт и т. п. ) n Жизненный цикл состоит из фаз. К каждой фазе может быть привязан ноль или более goal-ов различных плагинов. По умолчанию, набор фаз с привязанными плагинами стандартен и зависит от типа артефакта проекта (конкретно - от типа packaging).
Как найти нужную библиотеку
lecture_AOP_7_Maven.ppt