Basis Tags

Het Project Object Model, POM in het kort. Is een configuratie bestand opgebouwd in het XML formaat.

Dit bestand zal alle configuratie voorzien voor het project, en ziet er standaard voor een Java 11 project als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>be.learningfever.groupId</groupId>
    <artifactId>artifact-id</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
            </plugin>
        </plugins>
    </build>

</project>

Op de verschillende tags kunnen w menu even inzoomen.

<project>…</project>

Deze tag is de root tag van een POM-bestand. Zoals besproken in de XML cursus voor Javanen, is er altijd een root tag nodig in een xml bestand die alle andere tags zal bevatten. Eveneens is dit de plaats om de schema’s aan te roepen voor het bestand.

In het geval van de POM wordt gestart met de basis schema’s in te lezen van W3C. Deze zorgen ervoor dat we custom made schema’s kunnen gaan inlezen.

Met deze standaard schema’s kan er nu een namespace worden opgebouwd die de root en child tags voor een POM bestand kunnen gaan inladen. En deze gebruiken we om de standaard POM configuratie automatisch in te laden.

Weetje
Maven verwacht automatisch Java 5. Het is bij het inladen van deze namespace, dat deze configuratie verwacht wordt. Wij moeten deze later in het POM bestand overschrijven!


<modelVersion>…</modelVersion>

Dit geeft de versie nummering van het POM bestand terug. Bij de huidige versie van Maven is de POM-versie 4.0.0, dit kan bij updates van Maven, in de toekomst, altijd veranderen.


Unieke Naamgeving tags

De naamgeving van een project gebeurt via een combinatie van 3 verschillende tags. Dit zodat op een unieke manier de naamgeving kan worden bepaald. Dit worden soms ook wel de coördinaten van het project genoemd.

<groupId>

Dit identificeert de eigenaar van het project. Het is gebruikelijk dat dit de domeinnaam is van de eigenaar (het bedrijf) waardoor de software wordt voorzien. Dit is heel equivalent met de pakket namen van Java projecten.

We kunnen dit vergelijken met de familienaam van ons software project. We kunnen met de GroupId dus bepalen tot welke familie het software pakket behoort.

<artifactId>

Dit identificeert het project zelf. Via de artifactId kan het juiste project worden benoemd dat een bedrijf heeft geproduceerd. Vele bedrijven hebben verschillende projecten die zij aanbieden en hebben ontwikkeld. En ook op de maven-repository (Open-source materiaal) kan je heel veel projecten vinden van dezelfde bedrijven. Het project moet dus ook een unieke naam krijgen.

Dit kunnen we dan ook weer vergelijken met de voornaam van ons software project. Met de ArtifactId kunnen we het specifieke project gaan benoemen binnen een familie van projecten.

<version>

De laatste, en zeker niet onbelangrijke, identificering, is de versie nummering. Dit geeft de versie van het project weer.

Dit kan je bekijken als de leeftijd van het project. Telkens er een nieuwe versie uitkomt door updates, bug fixes, Major Update, … gaat de versie omhoog of krijgt deze bepaalde achtervoegsels. In het volgende Topic, gaan we hier dan ook iets dieper op in.


<properties>…</properties>

Met deze tags kunnen we verscheidene instellingen gaan opbouwen. In het geval van onze projecten, doordat Maven standaard in Java 5 staat, en wij Java 11 gebruiken. Is het nodig dat we de Compiler en Interpreter instelling veranderen van Java 5 naar Java 11.


<build>…</build>

Omdat we onze compiler willen veranderen om de code te behandelen als Java 11 ipv Java 5, moeten we het mogelijk maken om het Build proces aan te passen van ons project. Dit doen we met deze tags en hun inhoud. Zo zijn de instellingen die we hebben aangepast in de properties tags, beschikbaar gesteld voor de compiler die Maven gebruikt.

Op dit onderdeel gaan we later nog dieper in tijdens de lessen : Dependencies en Phases en Goals

Samenvattend

  • De root tag zorgt ervoor dat ons xml bestand behandeld wordt als een POM bestand voor Maven
  • De naamgeving tags zorgen ervoor dat een project uniek wordt benoemd met een Familienaam, Roepnaam en Leeftijd
  • Om met Java 11 te kunnen werken moeten we de instellingen van dee compiler veranderen die standaard op Java 5 zijn ingesteld