Dependencies en plugins beheren
Leer externe bibliotheken toe te voegen en te beheren en plugins te gebruiken om uw buildproces uit te breiden.
Dependencies en plugins beheren is een gratis Functioneel programmeren met Clojure en backendontwikkeling op de JVM-les op CoddyKit. Dit is les 2 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 Functioneel programmeren met Clojure en backendontwikkeling op de JVM. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Functioneel programmeren met Clojure en backendontwikkeling op de JVM bevat in totaal 4 lessen.
Bibliotheken en het buildproces
In elk realistisch project heb je externe bibliotheken nodig om functionaliteit toe te voegen zonder alles vanaf nul te schrijven. Deze worden ook afhankelijkheden genoemd.
Buildtools zoals Leiningen en Deps.edn helpen je deze bibliotheken te beheren, zodat je ze eenvoudig automatisch kunt toevoegen, bijwerken en verwijderen.
Leiningen: afhankelijkheden toevoegen
Met Leiningen declareer je afhankelijkheden in het bestand project.clj. Ze komen in de vector :dependencies, die een lijst bevat van de bibliotheken die je project nodig heeft.
Elke afhankelijkheid is zelf een vector met de groeps-ID, artefact-ID en versie van de bibliotheek, bijvoorbeeld:
[group-id/artifact-id "version"]
Leiningen: een bibliotheek gebruiken
Om een externe bibliotheek zoals tick (een eenvoudige tijdbibliotheek) te gebruiken, voeg je deze eerst onder de sleutel :dependencies toe aan je bestand project.clj:
:dependencies [[org.clojure/clojure "1.11.1"]
[tick "0.5.0-RC1"]]
Daarna kun je de bibliotheek in je namespace require en de functies ervan gebruiken. Probeer dit voorbeeld uit:
(ns my-app.core
(:require [tick.core :as t]))
(defn -main
"Prints the current time using the tick library."
[& args]
(println "The current time is:" (t/now)))Deps.edn: afhankelijkheden toevoegen
Met deps.edn declareer je afhankelijkheden in de toewijzing :deps. Dit bestand staat meestal in de hoofdmap van je project.
Elke vermelding in :deps koppelt een bibliotheeknaam aan een toewijzing met de bron ervan, meestal :mvn/version voor bibliotheken uit Maven Central:
{library-name {:mvn/version "version"}}
Deps.edn: een bibliotheek gebruiken
Om dezelfde bibliotheek tick met deps.edn te gebruiken, voeg je deze als volgt toe aan je bestand deps.edn:
{:paths ["src"]
:deps {tick/tick {:mvn/version "0.5.0-RC1"}}}
Met deze configuratie kan je code, bijvoorbeeld in src/my_app/core.clj, de bibliotheek vereisen en gebruiken. Probeer deze uit te voeren:
(ns my-app.core
(:require [tick.core :as t]))
(defn -main
"Prints the current time using the tick library."
[& args]
(println "The current time is:" (t/now)))Transitieve afhankelijkheden begrijpen
Wanneer je een bibliotheek toevoegt, is die vaak zelf afhankelijk van andere bibliotheken om correct te werken. Dit zijn transitieve afhankelijkheden.
Je buildtool haalt deze automatisch ook op. De bibliotheek tick kan bijvoorbeeld afhankelijk zijn van clojure.java.time, die dan ook wordt gedownload.
Zo hoef je niet handmatig elke vereiste bibliotheek voor je project bij te houden.
Transitieve afhankelijkheden uitsluiten
Soms moet je een transitieve afhankelijkheid uitsluiten. Meestal doe je dit om versieconflicten met andere bibliotheken te voorkomen of de totale omvang van je project te verkleinen.
In Leiningen kun je de sleutel :exclusions gebruiken binnen een afhankelijkheidsvector. Als je bijvoorbeeld clojure.java.time uit tick wilt uitsluiten:
(defproject my-app "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.11.1"]
[tick "0.5.0-RC1" :exclusions [clojure.java-time]]]
:main ^:skip-aot my-app.core
:target-path "target/%s")Plug-ins voor buildtools
Plug-ins breiden de functionaliteit van je buildtool zelf uit. Ze kunnen nieuwe taken toevoegen, processen automatiseren of integreren met andere ontwikkeltools.
Veelvoorkomende toepassingen zijn codeopmaak, statische analyse, implementatie of het uitvoeren van specifieke testsuites.
Plug-ins verschillen van gewone afhankelijkheden: ze werken op het buildproces van het project en leveren niet alleen bibliotheken voor de code van je toepassing.
Leiningen: plug-ins gebruiken
Leiningen ondersteunt plug-ins die je onder de sleutel :plugins in je project.clj definieert. Bekijk bijvoorbeeld lein-ancient, waarmee je kunt controleren op verouderde afhankelijkheden.
Je voegt [lein-ancient "0.6.15"] toe aan je vector :plugins. Daarna kun je vanuit je terminal lein ancient check uitvoeren om te controleren of je bibliotheken up-to-date zijn.
(defproject my-app "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.11.1"]]
:plugins [[lein-ancient "0.6.15"]]
:main ^:skip-aot my-app.core
:target-path "target/%s")Kenniscontrole over afhankelijkheidsbeheer
Je hebt geleerd hoe je afhankelijkheden en plug-ins in Clojure-projecten beheert. Laten we controleren of je het begrijpt.
Samenvatting: afhankelijkheden en plug-ins
Goed gedaan! In deze les hebben we behandeld:
- Hoe je externe bibliotheken (afhankelijkheden) toevoegt met zowel Leiningen
project.cljals Deps.edndeps.edn. - Het concept van transitieve afhankelijkheden en hoe deze automatisch worden beheerd.
- Hoe je specifieke transitieve afhankelijkheden in Leiningen uitsluit.
- De rol van plug-ins bij het uitbreiden van de functionaliteit van buildtools, los van gewone bibliotheken.
Goed beheer van afhankelijkheden en plug-ins is cruciaal voor het onderhouden van gezonde, efficiënte Clojure-projecten. Blijf nieuwe bibliotheken en tools ontdekken!
Leer Clojure 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 “Dependencies en plugins beheren” gratis?
Ja — de volledige tekst van “Dependencies en plugins beheren” 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 Functioneel programmeren met Clojure en backendontwikkeling op de JVM wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Functioneel programmeren met Clojure en backendontwikkeling op de JVM bevat in totaal 4 lessen.
Wat leer ik in “Dependencies en plugins beheren”?
Leer externe bibliotheken toe te voegen en te beheren en plugins te gebruiken om uw buildproces uit te breiden. Je oefent met Functioneel programmeren met Clojure en backendontwikkeling op de JVM 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 Functioneel programmeren met Clojure en backendontwikkeling op de JVM te beginnen?
Ervaring vooraf is niet nodig. Functioneel programmeren met Clojure en backendontwikkeling op de JVM 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 2 van 4.
Hoe lang duurt de les “Dependencies en plugins beheren”?
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 Functioneel programmeren met Clojure en backendontwikkeling op de JVM?
Ja. Elke les over Functioneel programmeren met Clojure en backendontwikkeling op de JVM 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
- Basisprincipes van Leiningen en Deps.edn
- Dependencies en plugins beheren
- Builden, testen en deployen
- Profielen, aliassen en omgevingen beheren