Java Academy · Lektion

Maven-plugins og goals

Tilpas build-processen

Lektion 2 af 413 trin

Maven-plugins og goals er en gratis Java Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Java Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Java Academy-kurset indeholder 4 lektioner i alt.

Maven-plugins og mål

Maven selv gør næsten ingenting — alt det egentlige arbejde udføres af plugins. Et plugin bidrager med mål, og mål knyttes til livscyklusfaser. Denne lektion viser, hvordan plugins tilpasser et build.

Plugins kontra mål

Et plugin er en pakket samling af relaterede funktioner. Et mål er én bestemt opgave i et plugin. Compiler Plugin leverer for eksempel målene compile og testCompile.

Målkoordinater

Du kan kalde et mål direkte som plugin:goal. For eksempel mvn compiler:compile eller mvn surefire:test. Normalt køres mål automatisk, fordi de er knyttet til faser.

Fasetilknytninger

Standardtypen for pakning knytter på forhånd standardplugins til faser. I et jar-projekt knyttes målet compile i Compiler Plugin til fasen compile, og målet test i Surefire Plugin knyttes til test — derfor fungerer mvn test bare.

Konfiguration af kompilatoren

Du konfigurerer et plugin i <build><plugins>. Her angiver vi Java-udgivelsesniveauet, så kompilatoren målrettes mod en bestemt version.

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.13.0</version>
      <configuration>
        <release>21</release>
      </configuration>
    </plugin>
  </plugins>
</build>

Surefire-pluginet

Surefire kører enhedstests under fasen test. Du kan konfigurere, hvilke tests der skal med, parallelitet og JVM-argumenter. Søskendepluginet Failsafe kører integrationstests under fasen verify.

Tilknytning af en ekstra udførelse

En <execution>-blok knytter et mål eksplicit til en fase, eventuelt med sin egen konfiguration. Sådan tilføjer du ekstra arbejde, f.eks. generering af kode før kompilering.

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>print-banner</id>
      <phase>generate-sources</phase>
      <goals><goal>run</goal></goals>
    </execution>
  </executions>
</plugin>

Bygning af en fat JAR

Standard-JAR'en indeholder ikke afhængigheder. Shade-pluginet (eller Assembly-pluginet) samler alt i én kørbar uber-jar ved at knytte sit mål til fasen package.

Exec-pluginet

Exec-pluginet lader dig køre dit program fra Maven med mvn exec:java, hvor du angiver hovedklassen. Praktisk til hurtige kørsler uden pakning.

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <configuration>
    <mainClass>com.example.App</mainClass>
  </configuration>
</plugin>

Pluginstyring

I et build med flere moduler fastlåser <pluginManagement> i den overordnede POM pluginversioner og fælles konfiguration. Underordnede moduler henviser derefter til pluginet uden at gentage versionen, så builds forbliver ensartede.

Find konfigurationen

Brug mvn help:describe -Dplugin=compiler til at vise et plugins mål og parametre. Det er den hurtigste måde at lære, hvilke indstillinger et plugin stiller til rådighed, uden at forlade terminalen.

Hurtigt tjek

Afprøv din forståelse af plugins og mål.

Opsummering

Du har lært, hvordan Maven-plugins fungerer:

  • Alt egentligt byggearbejde udføres af plugins, som bidrager med mål.
  • Mål er knyttet til livscyklusfaser, så standardfaserne bare fungerer.
  • Konfigurer plugins i <build><plugins>; tilføj udførelser for ekstra tilknytninger.
  • Shade/Assembly bygger fat JAR'er; Exec kører programmet; Surefire/Failsafe kører testene.
  • mvn help:describe viser et plugins mål og parametre.
Gratis at komme i gang

Lær Java med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
104
Lektioner
374

Ofte stillede spørgsmål

Er lektionen “Maven-plugins og goals” gratis?

Ja — hele teksten til “Maven-plugins og goals” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Java Academy-kurset, skal du opgradere til CoddyKit PRO. Java Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Maven-plugins og goals”?

Tilpas build-processen Du øver dig i Java Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Java Academy?

Der kræves ingen tidligere erfaring. Java Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Maven-plugins og goals”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Java Academy-lektion?

Ja. Alle Java Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Maven-projektstruktur
  2. Maven-plugins og goals
  3. Grundlæggende Gradle
  4. Vælg et build-værktøj
← Tilbage til Java Academy