Evgeniy S
2. Maven - POM
POM (Project Object Model) предоставляет конфигурацию для одного проекта. И охватыет имя проекта, владельца проекта, зависимости от других проектов. Доступны настройки для отдельных фаз процесса сборки, реализованные в виде плагинов. Большие проекты разделяются на несколько модулей или подпроектов, каждый со своим POM, а так же одним корневым POM, с помощью которого можно скомпилировать все модули с помощью одной команды. POM наследуется от базового POM по умолчанию.
Элементы POM
- project - корневой элемент.
- modelVersion - указывает на версию объектной модели используемой в POM
- groupId - уникальный индедификатор группы, создавшей проект. Основан на доменом имени ( org.apache.maven )
- artifactId - уникальное базовое имя основного артефакта, создавамого этим проектом ( app-1.0.jar )
- version - версия артефакта, созданного проектом.
- name - отображаемое имя, используемое для проекта.
- url - элемент указывает на веб-сайт
- description - описание этого проекта
Создайте проект для примера
mvn -B archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.hashtab.app \
-DartifactId=app
Минимальный POM
<project xmlns="...">
<modelVersion> </modelVersion>
<groupId>com.hashtab.app</groupId>
<artifactId>app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>app</name>
</project>
Откройте app/pom.xml и найдите элементы из списка выше.
В репозитории проект: groupId:artifactId:version
Super Pom
Super Pom является по умолчанию Maven. Все POM в проекте расширяют Super Pom, если не настроено иначе. Посмотреть Super Pom можно используя команду:
mvn help:effective-pom
В результате в полученом выводе на консоль получаем:
- директорию вывода
- список плагинов
- репозитории
- структуру проекта