6.1 Introduktion till plugins
Standardlivscykler kan förbättras med funktionalitet med Maven-plugins. Plugins låter dig infoga nya steg i standardcykeln (till exempel distribution till applikationsservern) eller utöka befintliga steg.
Plugins i Maven är inte något extraordinärt, tvärtom, de är det vanligaste och vanligaste. När allt kommer omkring, om du vill ställa in några nyanser för att bygga ditt projekt, måste du ange den nödvändiga informationen i pom.xml. Och det enda sättet att göra detta är att skriva en "plugin".
Eftersom plugins är lika mycket artefakter som beroenden beskrivs de på ungefär samma sätt. Istället för beroendesektionen - plugins, istället för beroende - plugin, istället för repositories - pluginRepositories, repository - pluginRepository.
Exempel:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
Genom att deklarera en plugin i pom.xml kan du fixa pluginversionen, samt ställa in nödvändiga parametrar för den, definiera olika konfigurationsparametrar och binda till faser.
Med andra ord, Maven kör vissa plugins som gör allt arbete. Det vill säga, om vi vill lära Maven om specialbyggen av projektet, måste vi lägga till i pom.xml en indikation för att starta det önskade pluginet i den nödvändiga fasen och med de nödvändiga parametrarna .
Antalet tillgängliga plugins är väldigt stort, det finns olika plugins som låter dig köra en webbapplikation direkt från maven för att testa den i en webbläsare, generera resurser och liknande. Utvecklarens huvuduppgift i den här situationen är att hitta och använda den lämpligaste uppsättningen plugins .
6.2 Livscykel och plugins
Mycket ofta används en plugin för att starta någon form av konsolverktyg under exekveringen av en viss fas. Dessutom kan vi till och med köra en vanlig Java-klass (som har en huvudmetod, förstås).
Exempel:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>first-argument</argument>
<argument>second-argument</argument>
</arguments>
</configuration>
</plugin>
Vanligtvis kan plugins vara mycket flexibelt konfigurerade. Alla officiella plugins från Maven-utvecklare är mycket väl dokumenterade på den officiella Maven-webbplatsen. Till exempel, för maven-compiler-plugin på Apache Maven Project-sidan kan du se en lista över alla variabler som styr plugin. Information om plugin finns på länken
Viktigare information. Olika plugins anropas av Maven i olika skeden av deras livscykel. Till exempel har ett projekt som beskriver en swing Java-skrivbordsapplikation olika livscykelstadier än de som är typiska för utvecklingen av en webbapplikation (krig).
Eller, till exempel, när kommandot "mvn test" körs, initieras en hel uppsättning steg i projektets livscykel: "process-resurser", "kompilera", "process-klasser", "process-test -resurser", "test-kompilera" , test. Du kan se omnämnandet av dessa faser i meddelandena som visas av Maven:
[INFO] Scanning for projects...
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ codegym
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ codegym ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ codegym ---
[INFO] Surefire report directory: t:\ projects\codegym\target\surefire-reports
6.3 Mål i Maven - mål
I Maven finns det också något som heter ett mål (mål). Målet är ungefär som Mavens startmål. Huvudmålen sammanfaller med huvudfaserna:
- bekräfta;
- sammanställa;
- testa;
- paket;
- kontrollera;
- Installera;
- distribuera.
I varje fas av projektets livscykel anropas ett specifikt plugin (jar-library), som inkluderar ett antal mål (mål)
Till exempel innehåller insticksprogrammet "maven-compiler-plugin" två mål: compiler:compile för att kompilera projektets huvudkällkod och compiler:testCompile för att kompilera tester. Formellt kan listan över faser ändras, även om detta sällan är nödvändigt.
Om du behöver utföra några icke-standardiserade åtgärder i en viss fas, behöver du bara lägga till lämplig plugin till pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>Name-plugin</artifactId>
<executions>
<execution>
<id>customTask</id>
<phase>generate-sources</phase>
<goals>
<goal>pluginGoal</goal>
</goals>
</execution>
</executions>
</plugin>
Det viktigaste i det här fallet är att definiera namnet på "exekverings-/fas"-fasen för plugin-programmet, där du måste bädda in anropet till målet för plugin-programmet "goal". Till exempel måste du generera Java-kod baserad på xml. Då behöver du fasen "generera-källor", som placeras före anropet till kompileringsfasen och är idealisk för att generera en del av projektets källor.
GO TO FULL VERSION