Java Academy · leksjon

Maven-prosjektstruktur

POM, livssyklus og avhengigheter

Leksjon 1 av 413 trinn

Maven-prosjektstruktur er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 1 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 Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 4 leksjoner.

Maven-prosjektstruktur

Maven er et byggeverktøy og en avhengighetsbehandler basert på ett hovedprinsipp: konvensjon fremfor konfigurasjon. Følg standardoppsettet, så fungerer det meste med nesten ingen konfigurering. Denne leksjonen dekker oppsettet, POM-en og avhengighetsbehandling.

Standard katalogstruktur

Maven forventer en fast struktur:

  • src/main/java — kildekode for produksjon.
  • src/main/resources — ressurser for produksjon.
  • src/test/java — kildekode for tester.
  • target/ — byggeutdata (generert).

POM-en

Hjertet i et Maven-prosjekt er pom.xml — Project Object Model. Den deklarerer koordinater, avhengigheter, programtillegg og byggeinnstillinger i XML.

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>
</project>

Koordinater: GAV

Hvert artefakt identifiseres av groupId, artifactId og version (GAV). Disse koordinatene navngir prosjektet og alle avhengighetene De henter inn, på en entydig måte.

Deklarere avhengigheter

Avhengigheter listes opp innenfor <dependencies>. Maven laster dem ned (sammen med deres transitive avhengigheter) fra repositories som Maven Central til en lokal hurtigbuffer.

<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

Avhengighetsområder

Scope styrer når en avhengighet finnes på classpath:

  • compile — overalt (standard).
  • provided — bare ved kompilering; leveres av containeren ved kjøring.
  • runtime — ved kjøring og testing, ikke ved kompilering.
  • test — bare ved kompilering og kjøring av tester.

Transitive avhengigheter

Hvis A er avhengig av B, og B er avhengig av C, gir Maven Dem C automatisk — dette kalles transitivitet. Når versjoner er i konflikt, løser Maven konflikten ved å velge den nærmeste definisjonen i avhengighetstreet.

Byggelivssyklusen

Maven definerer en ordnet livssyklus av faser. Standardlivssyklusen omfatter (i denne rekkefølgen): validate, compile, test, package, verify, install, deploy. Når De kjører en fase, kjøres også alle tidligere faser.

Vanlige kommandoer

  • mvn compile — kompiler hovedkilden.
  • mvn test — kjør enhetstester.
  • mvn package — bygg JAR/WAR-filen i target/.
  • mvn install — kopier artefaktet til det lokale repositoryet, slik at andre prosjekter kan bruke det.

Det lokale repositoryet

Nedlastede artefakter bufres i ~/.m2/repository. Senere bygginger bruker hurtigbufferet i stedet for å laste ned på nytt. mvn install plasserer Deres eget artefakt der, slik at søsterprosjekter kan være avhengige av det.

Prosjekter med flere moduler

En overordnet POM med <packaging>pom</packaging> kan liste opp underordnede <modules>. Maven bygger dem i avhengighetsrekkefølge, slik at et stort system kan dele konfigurasjon og versjoner fra ett sted.

Kort kontroll

Test forståelsen Deres av Maven-strukturen.

Oppsummering

De har lært grunnlaget i Maven:

  • Konvensjon fremfor konfigurasjon med standardoppsettet src/main/java.
  • POM-en deklarerer GAV-koordinater, avhengigheter og programtillegg.
  • Scopes (compile, provided, runtime, test) styrer synligheten på classpath.
  • Avhengigheter er transitive; konflikter løses ved nærmeste definisjon.
  • Den ordnede livssyklusen innebærer at en fase kjører alle tidligere faser.
Gratis å komme i gang

Lær deg Java 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
104
Leksjoner
374

Ofte stilte spørsmål

Er leksjonen «Maven-prosjektstruktur» gratis?

Ja – hele teksten i «Maven-prosjektstruktur» 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 Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Maven-prosjektstruktur»?

POM, livssyklus og avhengigheter Du øver på Java Academy 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 Java Academy?

Ingen tidligere erfaring er nødvendig. Java Academy 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 1 av 4.

Hvor lang tid tar leksjonen «Maven-prosjektstruktur»?

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 Java Academy-leksjonen?

Ja. Alle Java Academy-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. Maven-prosjektstruktur
  2. Maven-plugins og mål
  3. Grunnleggende Gradle
  4. Velge et byggeverktøy
← Tilbake til Java Academy