Aangepaste repositories en BOM's
Configureer aangepaste Maven- of Ivy-repositories en gebruik Bill of Materials (BOM's) voor consistente dependencyversies.
Aangepaste repositories en BOM's is een gratis Groovy en Gradle: JVM-automatisering en buildbeheer-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Groovy en Gradle: JVM-automatisering en buildbeheer. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Groovy en Gradle: JVM-automatisering en buildbeheer bevat in totaal 4 lessen.
Verder dan Maven Central
Standaard zoekt Gradle naar afhankelijkheden in Maven Central. Maar wat doe je als je afhankelijkheden daar niet te vinden zijn?
Met aangepaste opslagplaatsen kun je bibliotheken op andere locaties ophalen, zoals:
- De privé-artefactserver van je bedrijf.
- Specifieke openbare opslagplaatsen, zoals Google's Maven-opslagplaats voor Android.
- Mappen op het lokale bestandssysteem.
Een Maven-opslagplaats toevoegen
Om een aangepaste Maven-opslagplaats toe te voegen, declareer je deze in het blok repositories van je build.gradle-bestand.
Gradle controleert opslagplaatsen in de volgorde waarin ze zijn gedeclareerd en stopt bij de eerste overeenkomst.
repositories {
mavenCentral()
maven {
url 'https://repo.spring.io/milestone'
}
}Voorbeeld: Google Maven-opslagplaats
Veel Android-bibliotheken worden gehost in Google's Maven-opslagplaats. Je voegt deze als volgt toe:
Dit is essentieel voor projecten die bibliotheken van Google gebruiken.
repositories {
google() // Shortcut for Google's Maven repo
mavenCentral()
}Ivy-opslagplaatsen begrijpen
Maven wordt veel gebruikt, maar Gradle ondersteunt ook Ivy-opslagplaatsen. Ivy heeft een flexibelere indeling voor artefacten.
Je kunt Ivy-opslagplaatsen tegenkomen in oudere projecten of specifieke bedrijfsomgevingen.
repositories {
ivy {
url "http://repo.mycompany.com/ivy"
layout "pattern", {
artifact "[organization]/[module]/[revision]/[artifact](-[classifier])-[revision].[ext]"
}
}
}Een lokale map als opslagplaats
Voor tests of intern gebruik kun je zelfs een lokale map als opslagplaats gebruiken. Dat is handig om artefacten binnen een team te delen zonder een speciale server.
Geef gewoon het pad naar je lokale map op.
repositories {
flatDir {
dirs 'libs' // Looks for JARs directly in the 'libs' folder
}
// Or a more structured Maven-like local repo
maven {
url uri('../my-local-maven-repo')
}
}Bill of Materials (BOM's)
Een Bill of Materials (BOM) is een speciaal Maven POM-bestand met een samengestelde lijst van versies van afhankelijkheden.
Dit helpt bij het beheren van transitieve afhankelijkheden en zorgt voor consistente versies in een project met meerdere modules of bij het gebruik van een reeks verwante bibliotheken.
Consistentie met BOM's
BOM's lossen een veelvoorkomend probleem op: conflicten tussen versies van afhankelijkheden. Als meerdere bibliotheken afhankelijk zijn van verschillende versies van dezelfde transitieve afhankelijkheid, kan dat onvoorspelbaar gedrag veroorzaken.
Met een BOM declareer je één "bron van waarheid" voor versies, waardoor je build betrouwbaarder wordt.
Een BOM importeren
Om een BOM in Gradle te gebruiken, declareer je deze als afhankelijkheid met de functie platform() of enforcedPlatform(). Hiermee geef je Gradle opdracht de versies uit de BOM te gebruiken.
Let op dat we geen versies opgeven voor spring-core of spring-web; de BOM regelt dat!
dependencies {
implementation platform('org.springframework.boot:spring-boot-dependencies:2.7.5')
// These versions are now managed by the BOM
implementation 'org.springframework:spring-core'
implementation 'org.springframework:spring-web'
}Platform tegenover EnforcedPlatform
Er zijn twee manieren om een BOM te importeren:
platform(): Stelt versies voor. Andere modules kunnen deze versies overschrijven als ze expliciet worden gedeclareerd.enforcedPlatform(): Dwingt versies strikt af. Expliciet gedeclareerde versies voor afhankelijkheden in de BOM worden overschreven door de versie uit de BOM.
Gebruik enforcedPlatform() voor sterke consistentie van versies.
Test je kennis
Laten we testen of je aangepaste opslagplaatsen en BOM's begrijpt!
Samenvatting: aangepaste opslagplaatsen en BOM's
Goed gedaan! Je hebt geleerd hoe je:
- Aangepaste Maven- en Ivy-opslagplaatsen in Gradle configureert.
- Het belang van de volgorde van opslagplaatsen begrijpt.
- Lokale mappen als opslagplaatsen gebruikt.
- Bill of Materials (BOM's) inzet voor consistent beheer van versies van afhankelijkheden.
- Het verschil tussen
platform()enenforcedPlatform()herkent.
Deze technieken zijn essentieel voor het beheren van complexe afhankelijkheden in echte projecten!
Leer Groovy met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Aangepaste repositories en BOM's” gratis?
Ja — de volledige tekst van “Aangepaste repositories en BOM's” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Groovy en Gradle: JVM-automatisering en buildbeheer wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Groovy en Gradle: JVM-automatisering en buildbeheer bevat in totaal 4 lessen.
Wat leer ik in “Aangepaste repositories en BOM's”?
Configureer aangepaste Maven- of Ivy-repositories en gebruik Bill of Materials (BOM's) voor consistente dependencyversies. Je oefent met Groovy en Gradle: JVM-automatisering en buildbeheer door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Groovy en Gradle: JVM-automatisering en buildbeheer te beginnen?
Ervaring vooraf is niet nodig. Groovy en Gradle: JVM-automatisering en buildbeheer op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Aangepaste repositories en BOM's”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Groovy en Gradle: JVM-automatisering en buildbeheer?
Ja. Elke les over Groovy en Gradle: JVM-automatisering en buildbeheer bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Projectdependencies declareren
- Dependencyresolutie en caching
- Aangepaste repositories en BOM's
- Versieconflicten en dependencybeperkingen oplossen