Szukaj…


Struktura POM

Project Object Model jest podstawową jednostką Maven i określa strukturę projektu, zależności itp.

Poniższe elementy są bardzo minimalne, aby utworzyć POM:

  • katalog główny project
  • modelVersion - należy ustawić na 4.0.0
  • groupId - identyfikator grupy projektu
  • artifactId - identyfikator artefaktu (projektu)
  • version - wersja artefaktu w ramach określonej grupy

groupId , artifactId i version nazywane są współrzędne Maven i czasami skracane z WDB. Jednoznacznie identyfikują powstały artefakt projektu w repozytorium Maven (i powinni to zrobić w całym wszechświecie).

Minimalna próbka POM wygląda następująco:

<project>
  <modelVersion>4.0.0</modelVersion>

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

Dziedziczenie POM

Dziedziczenie jest największym atutem POM, w którym można zarządzać następującymi elementami: od super POM do potomnego POM.

  • zależności
  • programiści i współpracownicy
  • listy wtyczek (w tym raporty)
  • wykonanie wtyczki z pasującymi identyfikatorami
  • konfiguracja wtyczki

Następujące umożliwia dziedziczenie

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

Wygląda struktura 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>

Agregacja POM

Moduły projektu wielomodułowego są agregowane ze struktury hierarchicznej.

Opakowanie pom root powinno wyglądać następująco:

<packaging>pom</packaging>

Poniżej będzie struktura katalogów projektu:

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

Korzeń 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow