Clojure: funksjonell programmering og backendutvikling på JVM · leksjon

Håndtere avhengigheter og programtillegg

Lær hvordan du legger til og håndterer eksterne biblioteker, og bruker programtillegg til å utvide byggeprosessen.

Leksjon 2 av 411 trinn

Håndtere avhengigheter og programtillegg er en gratis leksjon i Clojure: funksjonell programmering og backendutvikling på JVM på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Clojure: funksjonell programmering og backendutvikling på JVM, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Clojure: funksjonell programmering og backendutvikling på JVM inneholder totalt 4 leksjoner.

Biblioteker og byggeprosessen

I alle reelle prosjekter vil De trenge eksterne biblioteker for å legge til funksjonalitet uten å skrive alt fra bunnen av. Disse kalles også avhengigheter.

Byggeverktøy som Leiningen og Deps.edn hjelper Dem med å håndtere disse bibliotekene, slik at de enkelt kan legges til, oppdateres og fjernes automatisk.

Leiningen: Legge til avhengigheter

Med Leiningen deklarerer De avhengigheter i filen project.clj. De legges i vektoren :dependencies, som er en liste over bibliotekene prosjektet trenger.

Hver avhengighet er selv en vektor som inneholder bibliotekets gruppe-ID, artefakt-ID og versjon, for eksempel:

  • [group-id/artifact-id "version"]

Leiningen: Bruke et bibliotek

For å bruke et eksternt bibliotek som tick (et enkelt tidsbibliotek) legger De det først til i filen project.clj under nøkkelen :dependencies:

:dependencies [[org.clojure/clojure "1.11.1"]
               [tick "0.5.0-RC1"]]

Når biblioteket er lagt til, kan De require det i navnerommet og bruke funksjonene. Prøv å kjøre dette eksempelet:

(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: Legge til avhengigheter

Med deps.edn deklareres avhengigheter i kartet :deps. Denne filen finnes vanligvis i prosjektroten.

Hver oppføring i :deps kobler et biblioteksnavn til et kart som inneholder kilden, vanligvis :mvn/version for biblioteker fra Maven Central:

  • {library-name {:mvn/version "version"}}

Deps.edn: Bruke et bibliotek

For å bruke det samme tick-biblioteket med deps.edn legger De det til i filen deps.edn slik:

{:paths ["src"]
 :deps {tick/tick {:mvn/version "0.5.0-RC1"}}}

Med dette på plass kan koden (for eksempel i src/my_app/core.clj) kreve og bruke biblioteket. Prøv å kjøre den:

(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)))

Forstå transitive avhengigheter

Når De legger til et bibliotek, er det ofte selv avhengig av andre biblioteker for å fungere korrekt. Disse kalles transitive avhengigheter.

Byggeverktøyet henter også disse automatisk. Biblioteket tick kan for eksempel være avhengig av clojure.java.time, som da også blir lastet ned.

Dette sparer Dem for å holde oversikt over hvert enkelt bibliotek prosjektet trenger, manuelt.

Utelukke transitive avhengigheter

Noen ganger kan De ha behov for å utelukke en transitiv avhengighet. Dette gjøres vanligvis for å unngå versjonskonflikter med andre biblioteker eller for å redusere prosjektets totale størrelse.

I Leiningen kan De bruke nøkkelen :exclusions i en avhengighetsvektor. Hvis De for eksempel vil utelukke clojure.java.time fra tick:

(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")

Programtillegg til byggeverktøy

Programtillegg utvider funksjonaliteten til selve byggeverktøyet. De kan legge til nye oppgaver, automatisere prosesser eller integrere med andre utviklingsverktøy.

Vanlige bruksområder er kodeformatering, statisk analyse, utrulling eller kjøring av bestemte testserier.

Programtillegg skiller seg fra vanlige avhengigheter. De brukes i prosjektets byggeprosess og leverer ikke bare biblioteker til applikasjonskoden.

Leiningen: Bruke programtillegg

Leiningen støtter programtillegg som defineres i project.clj under nøkkelen :plugins. Se på lein-ancient, som hjelper med å kontrollere om avhengigheter er utdaterte.

De legger til [lein-ancient "0.6.15"] i vektoren :plugins. Deretter kan De kjøre lein ancient check fra terminalen for å se om bibliotekene er oppdaterte.

(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")

Kunnskapssjekk for avhengighetshåndtering

De har lært om håndtering av avhengigheter og programtillegg i Clojure-prosjekter. La oss teste forståelsen Deres.

Oppsummering: Avhengigheter og programtillegg

Godt jobbet! I denne leksjonen har vi gått gjennom:

  • Hvordan eksterne biblioteker (avhengigheter) legges til med både Leiningens project.clj og Deps.edns deps.edn.
  • Konseptet transitive avhengigheter og hvordan de håndteres automatisk.
  • Hvordan bestemte transitive avhengigheter kan utelukkes i Leiningen.
  • Programtilleggenes rolle i å utvide byggeverktøyets funksjonalitet, og hvordan de skiller seg fra vanlige biblioteker.

Det er avgjørende å beherske håndtering av avhengigheter og programtillegg for å vedlikeholde sunne og effektive Clojure-prosjekter. Fortsett å utforske nye biblioteker og verktøy!

Gratis å komme i gang

Lær deg Clojure med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Håndtere avhengigheter og programtillegg» gratis?

Ja – hele teksten i «Håndtere avhengigheter og programtillegg» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Clojure: funksjonell programmering og backendutvikling på JVM-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Clojure: funksjonell programmering og backendutvikling på JVM inneholder totalt 4 leksjoner.

Hva lærer jeg i «Håndtere avhengigheter og programtillegg»?

Lær hvordan du legger til og håndterer eksterne biblioteker, og bruker programtillegg til å utvide byggeprosessen. Du øver på Clojure: funksjonell programmering og backendutvikling på JVM med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Clojure: funksjonell programmering og backendutvikling på JVM?

Ingen tidligere erfaring er nødvendig. Clojure: funksjonell programmering og backendutvikling på JVM på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Håndtere avhengigheter og programtillegg»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Clojure: funksjonell programmering og backendutvikling på JVM-leksjonen?

Ja. Alle Clojure: funksjonell programmering og backendutvikling på JVM-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende om Leiningen og Deps.edn
  2. Håndtere avhengigheter og programtillegg
  3. Bygging, testing og distribusjon
  4. Håndtere profiler, aliaser og miljøer
← Tilbake til Clojure: funksjonell programmering og backendutvikling på JVM