Содержание
- 2. Что такое maven? "Maven is a project development management and comprehension tool" с сайта maven.apache.org Apache
- 3. Что важно для нас ? Независимость от платформы и IDE. Всё абсолютно идентично, как на Windows,
- 4. Начало работы с Maven В самом начале работы с Maven, пользователь непременно столкнется с таким понятием
- 6. Начало работы с Maven Структура и сожержание проекта Maven указывается в специальном xml-файле, который назывется Project
- 7. Зависимости и репозитории Как правило, большинство популярных библиотек находятся в центральном репозитории, поэтому их можно прописывать
- 8. Объектная модель проекта Объектная модель проекта определяет полную конфигурацию для какого-то единственного проекта. Конфигурация включает: название
- 9. Тэг не обязательный т. к. существуют значения по умолчанию. Этот раздел содержит информацию по самой сборке:
- 10. Жизненный цикл проекта Жизненным циклом называется вся совокупность операций над проектом от инициализации сборки до развёртывания.
- 11. Основные Фаза clean – очистка артефактов, созданных в процессе предыдущих сборок. validate – проверка проекта на
- 13. Скачать презентацию
Что такое maven?
"Maven is a project development management and comprehension tool"
Что такое maven?
"Maven is a project development management and comprehension tool"
Apache Maven – это средство для управления и сборки проектов. Он позволяет разработчикам управлять жизненным циклом проекта. Благодаря этому, команда может автоматизировать процессы, связанные со сборкой, тестирование, упаковкой проекта и т.д.
В случае, когда над проектом работает несколько команд разработчиков, Maven позволяет работать в соответствии с определенными стандартами создаёт базовую структуру проекта.
Maven обеспечивает поведение проекта по умолчанию Разработчики несут ответственность только за соответственное размещение файлов.
Логика работы Maven основана на репозиториях. Репозиторий - это хранилище библиотек и плагинов, которые автоматически скачиваются при упоминании в файле описания сборки.
Что важно для нас ?
Независимость от платформы и IDE. Всё абсолютно
Что важно для нас ?
Независимость от платформы и IDE. Всё абсолютно
Популярность. В настоящее время Maven используется повсеместно для ведения новых проектов в любой компании, и множество старых проектов также переводятся на него. Опыт с Maven будет полезен вам, если будете работать в области Java.
Глобальные репозитории библиотек. Репозиторий содержащие все известные популярные Java-библиотеки, и множество малоизвестных. Возможность добавлять свои библиотеки и инструментарий в глобальные репозитории. Мавен сохраняет подключенные версии библиотек в локальном репозитории, позволяя работать с ними в условиях отсутствия связи с Интернет.
Plug-in архитектура, дающая огромную гибкость и расширяемость под свои нужды. Множество уже готовых плагинов (существуют обширные репозитории Мавен-плагинов), простота в разработке и добавлении новых.
Единый унифицированный цикл жизни любого проекта, от малых алгоритмических задач, разрабатываемых одним человеком, до огромных Enterprise приложений, в разработке и сопровождении которых заняты сотни и тысячи людей.
Начало работы с Maven
В самом начале работы с Maven, пользователь непременно
Начало работы с Maven
В самом начале работы с Maven, пользователь непременно
Maven уже предоставляет нам наиболее популярные архетипы для приложений, но вы можете легко создать свой.
Допустим нас интересует веб-приложение – находим подходящий архетип, называется он maven-archetype-webapp. Выбереем нужный архетип.
После этого мы имеем наглядную структуру каталогов с говорящими названиями
java – здесь будут ваши классы,
webapp – здесь размещаются странички веб-приложения,
resources – различного рода ресурсы в classpath (файлы конфигурации, например),
target - cкомпилированный байт-код
test – юнит-тесты, соответственно и т.п.
Начало работы с Maven
Структура и сожержание проекта Maven указывается в специальном
Начало работы с Maven
Структура и сожержание проекта Maven указывается в специальном
Ключевым понятием Maven является артефакт — это, по сути, любая библиотека, хранящаяся в репозитории. Это может быть какая-то зависимость или плагин.
Плагины это настройки для управления жизненным циклом проекта и его зависимостями.
Мы можем создавать проекты с использованием Maven без понимания того, как работают эти отдельные плагины.
В Maven каждый проект идентифицируется парой groupId artifactId.
Во избежание конфликта имён,
groupId - наименование организации или подразделения и обычно действуют такие же правила как и при именовании пакетов в Java - записывают доменное имя организации или сайта проекта.
artifactId - название проекта.
Внутри тэга version, хранится версия проекта. Если состояние кода для проекта не зафиксировано, то в конце к имени версии добавляется "-SNAPSHOT" что обозначает что версия в разработке.
Тег
Зависимости и репозитории
Как правило, большинство популярных библиотек находятся в центральном репозитории,
Зависимости и репозитории
Как правило, большинство популярных библиотек находятся в центральном репозитории,
Так как плагины являются такими же артефактами, как и зависимости, то они описываются практически так же. Вместо раздела dependencies – plugins, dependency – plugin, repositories – pluginRepositories, repository – pluginRepository.
Объектная модель проекта
Объектная модель проекта определяет полную конфигурацию для какого-то единственного
Объектная модель проекта
Объектная модель проекта определяет полную конфигурацию для какого-то единственного
Конфигурация включает:
название
владельца
зависимости от других проектов
и конфигурацию индивидуальных фаз процесса сборки, реализуемую посредством плагинов.
Например, мы можем указать использование Java version 1.8 для компиляции, или специфицировать, что проект должен быть упакован, даже если несколько юнит-тестов не прошли.
Большие проекты могут разделяться на несколько модулей или подпроектов, каждый со своим POM. Таким образом разрабатывается корневой POM, в котором описаны модули и с помощью которого можно скомпилировать все модули одной командой. Все POM-ы наследуют некий базовый супер-POM по умолчанию. В супер-POM определены source-каталоги и плагины по умолчанию.
Таким образом, структура проекта представляет собой иерархию модулей и подмодулей иногда с достаточной большой глубиной.
Тэг не обязательный т. к. существуют значения по умолчанию.
Тэг
Также добавляется информация, которая не используется самим мавеном, но нужна для программиста, чтобы понять, о чём этот проект:
название проекта:
описание проекта
сайт проекта:
Жизненный цикл проекта
Жизненным циклом называется вся совокупность операций над проектом от
Жизненный цикл проекта
Жизненным циклом называется вся совокупность операций над проектом от
В процессе прохождения жизненного цикла выполняются определённые операции над проектом. Жизненный цикл разделён на фазы.
Каждая фаза подразумевает перевод проекта в новое состояние в результате её прохождения и появление новых артефактов.
При выполнении определенной фазы автоматически последовательно выполняются все предыдущие фазы (те фазы от которых зависит выполняемая), на каждой фазе производится вызов соответствующего плагина.
К каждой фазе может быть привязан ноль или более различных плагинов. По умолчанию, набор фаз с привязанными плагинами стандартен и зависит от типа артефакта проекта.
Основные Фаза
clean – очистка артефактов, созданных в процессе предыдущих сборок.
validate –
Основные Фаза
clean – очистка артефактов, созданных в процессе предыдущих сборок.
validate –
compile – компиляция исходного кода.
test – тестирование скомпилированного кода с использованием сконфигурированного тестового движка (например, JUnit).
package – упаковка скомпилированного кода в формат поставки, например в JAR.
integration-test – обработка и поставка упакованного пакета в окружение (на систему), обеспечивающее возможность запуска интеграционных тестов
verify – проверка целостности пакета и его соответствия критериям качества
install – инсталляция пакета в локальный репозиторий для его дальнейшего использования в качестве зависимости в других локальных пакетах и проектах
site – генерация site-документации для проекта (опциональная фаза)
deploy – поставка пакета на интеграционное или релизное окружение, включая также его копирование в удалённый репозиторий, где он доступен для других разработчиков и прочих проектов