Поиск…


Структура POM

Модель объекта проекта является базовой единицей Maven и определяет структуру проекта, зависимости и т. Д.

Следующие минимальные значения для создания POM:

  • корень project
  • modelVersion - должно быть установлено в 4.0.0
  • groupId - идентификатор группы проекта
  • artifactId - идентификатор артефакта (проекта)
  • version - версия артефакта в указанной группе

groupId , artifactId и version называются координатами Maven и иногда сокращаются с помощью GAV . Они однозначно идентифицируют полученный артефакт проекта в репозитории Maven (и должны делать это во всей вселенной).

Минимальный образец POM выглядит так:

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sample</groupId>
  <artifactId>sample-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

Наследование POM

Наследование является самым большим достоянием POM, в котором можно управлять следующим образом: от супер POM до дочернего POM.

  • зависимости
  • разработчики и участники
  • списки плагинов (включая отчеты)
  • плагины с соответствующими идентификаторами
  • конфигурация плагина

Следующее позволяет наследовать

  <parent>
    <groupId>com.sample</groupId>
    <artifactId>sample-app-parent</artifactId>
    <version>1.0.0</version>
  </parent>

Структура POM выглядит

<project>
  <parent>
    <groupId>com.sample</groupId>
    <artifactId>sample-app-parent</artifactId>
    <version>1.0.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample</groupId>
  <artifactId>sample-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

Агрегация POM

Модули многомодульного проекта агрегируются из иерархической структуры.

pom упаковка pom должна выглядеть так:

<packaging>pom</packaging>

Ниже представлена ​​структура каталогов проекта:

 |-- sample-app
  \   `-- pom.xml
   |-- sample-module-1
   |   `-- pom.xml
   |-- sample-module-2
   |   `-- pom.xml

Root POM:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample</groupId>
  <artifactId>sample-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
 
  <modules>
    <module>sample-module-1</module>
    <module>sample-module-2</module>
  </modules>
  <dependencyManagement>
    ...
  </dependencyManagement>
</project>


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow