Apache Maven
POM - Project Object Model
Sök…
POM-struktur
Project Object Model är basenheten i Maven och definierar projektstrukturen, beroenden etc.
Följande är mycket minimala för att skapa en POM:
-
project
-
modelVersion
- bör ställas in på4.0.0
-
groupId
- ID för projektets grupp -
artifactId
-artifactId
ID (projekt) -
version
- versionen av artefakten under den angivna gruppen
groupId
, artifactId
och version
kallas Maven-koordinater och ibland förkortade med GAV . De identifierar unikt den resulterande artefakten av ett projekt i ett Maven-arkiv (och borde göra det i hela universum).
En minimal POM-prov ser ut som:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>sample-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
POM-ärft
Arv är POM: s största tillgång, där följande kan hanteras från super POM till barn POM.
- beroenden
- utvecklare och bidragsgivare
- pluginlistor (inklusive rapporter)
- plugin-körningar med matchande ID: er
- plugin-konfiguration
Följande möjliggör arvet
<parent>
<groupId>com.sample</groupId>
<artifactId>sample-app-parent</artifactId>
<version>1.0.0</version>
</parent>
POM-strukturen ser ut
<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-aggregering
Modulerna i ett multimodulprojekt samlas från en hierarkisk struktur.
Root- pom
förpackningen ska se ut:
<packaging>pom</packaging>
Följande är projektets katalogstruktur:
|-- 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow