Maven-plugins og goals
Tilpas build-processen
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:describeviser et plugins mål og parametre.
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
- Maven-projektstruktur
- Maven-plugins og goals
- Grundlæggende Gradle
- Vælg et build-værktøj