Apache Maven: POM, lifecycle en afhankelijkheden
Datum van publicatie:
Bijgewerkt:
Artikelen > Apache Maven: POM, lifecycle en afhankelijkheden
Maven in 2026: uitgangspunten en aandachtspunten
Kort gezegd: Maven is een op conventies gebaseerde tool voor het bouwen en beheren van Java-projecten. De POM beschrijft coördinaten, afhankelijkheden, plugins en buildinstellingen; de lifecycle maakt compileren, testen, verpakken, controleren en publiceren herhaalbaar.
Wat je zult leren
- Welke taken Maven uitvoert en wat in versiebeheer of de CI-configuratie thuishoort.
- Hoe Maven-coördinaten, repositories, plugins, fasen en scopes samenhangen.
- Welke plaats afhankelijkheidsresolutie in het volledige buildproces inneemt.
Voor wie: Java-ontwikkelaars die Maven beoordelen of een bestaand pom.xml moeten doorgronden.
Actualisatie voor 2026: gebruik de Maven Wrapper, leg pluginversies vast, bescherm repositoryreferenties en controleer de effectieve POM in CI. De voorbeelden behandelen de basis; verifieer in de officiële documentatie of plugins en JDK-versie compatibel zijn.
Veiligheidsopmerking: de opdrachten en configuratievoorbeelden uit het oorspronkelijke artikel zijn niet opnieuw in een moderne productieomgeving uitgevoerd. Controleer ondersteunde versies, back-ups, toegangsbeheer en terugrolstappen eerst in een afzonderlijke testomgeving.
Officiële primaire bronnen
Overzicht
Apache Maven, meestal kortweg Maven genoemd, stuurt de build van een Java-project aan via het Project Object Model (POM), vaste lifecycles en plugins. Dit overzicht maakt duidelijk wat er achter één mvn-opdracht gebeurt.
Inhoudsopgave
1. Wat is Maven?
Maven is een tool voor build- en projectbeheer. Zie ook de stappen van een Java-build voor het onderscheid tussen compileren, verpakken en een volledige build.
Een Maven-build kan onder meer deze taken coördineren:
- JAR-afhankelijkheden oplossen;
- broncode compileren en tests uitvoeren;
- uitvoermappen bepalen;
- WAR-bestanden genereren.
Het officiële Maven-overzicht vat de doelen van het project als volgt samen:
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
In de praktijk biedt Maven een conventioneel en herhaalbaar model om de build van een project te beschrijven en uit te voeren.
2. Wat Maven beheert
De volgende functies maken builds reproduceerbaar en eenvoudiger te onderhouden.
2-1. Fasen van de build
Lifecyclefasen roepen geconfigureerde plugins in een vaste volgorde aan. Veelgebruikte opdrachten zijn:
- mvn test compileert de code en voert tests uit;
- mvn clean verwijdert gegenereerde uitvoer;
- mvn package maakt het ingestelde artefact, bijvoorbeeld een JAR of WAR.
2-2. Afhankelijkheden oplossen
Een gedeclareerde afhankelijkheid kan zelf andere artefacten nodig hebben. Maven leest de bijbehorende POM en lost transitieve afhankelijkheden op volgens scope, optionaliteit, uitsluitingen en regels voor versieconflicten.
De uitleg over transitieve afhankelijkheden in Maven beschrijft de wisselwerking tussen POM's en repositories.
2-3. Metadata en scopes van afhankelijkheden
Een declaratie bevat coördinaten en een versie, niet alleen de naam van een JAR. De scope geeft aan waar het artefact nodig is, bijvoorbeeld bij compilatie, tijdens runtime of in tests.
Het bestand pom.xml bevat ook plugins en projectinstellingen. Daarmee is de builddefinitie overdraagbaar; volledige reproduceerbaarheid vereist daarnaast beheerde repositories, vastgelegde pluginversies, een ondersteunde JDK en consistente externe instellingen.
3. Conclusie
Maven beschrijft het project in een POM en voert via plugins een vaste lifecycle uit. Het lost afhankelijkheden op en coördineert compilatie, tests, packaging, verificatie en publicatie; de effectieve POM en gekozen fase bepalen het precieze gedrag.