Apache Maven

Содержание

Слайд 2

Build Tools

Java

02

2018 - Which build tool do you use for your main

Build Tools Java 02 2018 - Which build tool do you use for your main project?
project?

Слайд 3

Build Tools – Apache Maven
Project Management Tool

Java

03

Первый выпуск:
30 марта 2002 года
Аппаратная платформа:
JVM
Управление

Build Tools – Apache Maven Project Management Tool Java 03 Первый выпуск:
проектом:
POM (Project Object Model) - XML-описание (pom.xml)
Стиль:
декларативный
Основные концепции:
Соглашение по конфигурации;
Архетипы - шаблоны;
Жизненный цикл – деление на фазы;
Архитектура – использование плагинов;
Модули;
Зависимости;
Плагины;
Профили.

Достоинства:
Повторяемость сборки;
Стандартизация сборки;
Декларативность сборки;
Автоматизация процесса сборки;
Модульность;
Управление зависимостями;
Расширяемость плагинами.
Недостатки:
Некоторая неэффективность для малых проектов.

Слайд 4

Maven

Java

04

ArtifactId

Версия проекта

GroupId

Version

Это идентификатор самого проекта. Чаще всего – его имя

Это ID группы

Maven Java 04 ArtifactId Версия проекта GroupId Version Это идентификатор самого проекта.
проекта. Зачастую, это уникальная организация или проект.

G

A

V

Слайд 5

Maven

Java

05

Parent

Module

Module

Module

Maven Java 05 Parent Module Module Module

Слайд 6

Maven

Java

06

Фаза

clean

site

Основные фазы сборки проекта
compile
Компилирование проекта
test
Тестирование с помощью JUnit тестов
3.package
Создание .jar файла или

Maven Java 06 Фаза clean site Основные фазы сборки проекта compile Компилирование
war, ear в зависимости от типа проекта
4.integration-test
Запуск интеграционных тестов
5.install
Копирование .jar (war , ear) в локальный репозиторий
6.deploy
Публикация файла в удалённый репозиторий

Слайд 7

Maven

Java

07

compile

test

package

integration-test

install

deploy

Компилирование проекта

Тестирование с помощью JUnit тестов

Создание .jar файла или war, ear в

Maven Java 07 compile test package integration-test install deploy Компилирование проекта Тестирование
зависимости от типа проекта

Запуск интеграционных тестов

Копирование .jar (war , ear) в локальный репозиторий

Публикация
файла в
удалённый репозиторий

validate

Проверка
проекта

clean

site

Слайд 8

Maven

Java

08

Область действия зависимости
Область действия зависимости scope определяет этап жизненного цикла проекта, в котором эта

Maven Java 08 Область действия зависимости Область действия зависимости scope определяет этап
зависимость будет использоваться. Maven использует 6 областей:
compile - область по умолчанию;
provided - очень похоже на compile, но эта зависимость в сборку не попадает;
runtime - зависимость с данной областью видимости не обязательна для compilation и используется в фазе выполнения;
test - зависимость используется при тестировании кода приложения;
system - область похожа на provided за исключением того, что необходимо определить физическое расположение артефакта на диске. Артефакт с этой областью видимости maven не ищет в репозитории;
import - эта область используется в зависимости секции при сложных связях

pom.xml

Слайд 9

Maven Plugins

Java

09

Apache Maven Plugins
Плагины - это способ расширить функциональность maven в больших

Maven Plugins Java 09 Apache Maven Plugins Плагины - это способ расширить
диапазонах.
Как и зависимости плагины идентифицируются с помощью GAV.

groupId
artifactId
version

- привязка к фазам;
- передача конфигурации.
Формат artifactId:
maven--plugin – для собственных плагинов;
-maven-plugin – зарезервировано Apache Maven.

Plugins

Слайд 10

Maven Plugins

Java

10

Apache Maven Plugins
Запуск плагинов:
Общий вид:
mvn groupId:artifactId:version:goal
mvn by.epam.inttraining2019.lecture3:greeting-maven-plugin:1.0-SNAPSHOT:greeting
Сокращенный вид:
1) Если в

Maven Plugins Java 10 Apache Maven Plugins Запуск плагинов: Общий вид: mvn
локальном репозитории есть только одна версия плагина, то версию можно опустить.
mvn groupId:artifactId:goal
mvn by.epam.inttraining2019.lecture3:greeting-maven-plugin:greeting
2) Если соблюдается соглашение об именовании artifactId плагина, то можно использовать только уникальное имя.
mvn greeting:greeting

Plugins

Слайд 11

Maven Plugins

Java

11

Apache Maven Profiles
Внутри профилей могут быть определены следующие теги:



Maven Plugins Java 11 Apache Maven Profiles Внутри профилей могут быть определены







При активации профиля его содержимое объединяется с общей частью pom.xml.
Активация профилей:
Вручную – ключ –P;
В файле pom.xml - ;
В файле settings.xml- .
mvn help:effective-pom -P dev

Profiles

Слайд 12

Maven

Java

12

Dependency

.m2

maven.org





Plugin

Официальные плагины

pluginRepositories

Maven Java 12 Dependency .m2 maven.org Plugin Официальные плагины pluginRepositories