CodeGym /Java kurs /Modul 3 /Maven-plugins

Maven-plugins

Modul 3
Nivå , Lekse
Tilgjengelig

6.1 Introduksjon til plugins

Standard livssykluser kan forbedres med funksjonalitet ved å bruke Maven-plugins. Plugins lar deg sette inn nye trinn i standardsyklusen (for eksempel distribusjon til applikasjonsserveren) eller utvide eksisterende trinn.

Plugins i Maven er ikke noe ekstraordinært, tvert imot, de er den vanligste og hyppigste tingen. Tross alt, hvis du vil angi noen nyanser for å bygge prosjektet ditt, må du spesifisere nødvendig informasjon i pom.xml. Og den eneste måten å gjøre dette på er å skrive en "plugin".

Siden plugins er like mange artefakter som avhengigheter, er de beskrevet på omtrent samme måte. I stedet for avhengighetsdelen - plugins, i stedet for avhengighet - plugin, i stedet for repositories - pluginRepositories, repository - pluginRepository.

Eksempel:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.6</version>
    </plugin>
</plugins>

Å erklære en plugin i pom.xml lar deg fikse plugin-versjonen, samt angi de nødvendige parameterne for den, definere ulike konfigurasjonsparametere og binde til faser.

Maven kjører med andre ord visse plugins som gjør alt arbeidet. Det vil si, hvis vi ønsker å lære Maven om spesielle konstruksjoner av prosjektet, må vi legge til pom.xml en indikasjon for å starte ønsket plugin i den nødvendige fasen og med de nødvendige parameterne .

Antallet plugins tilgjengelig er veldig stort, det finnes ulike plugins som lar deg kjøre en webapplikasjon direkte fra maven for å teste den i en nettleser, generere ressurser og lignende. Hovedoppgaven til utvikleren i denne situasjonen er å finne og bruke det mest passende settet med plugins .

6.2 Livssyklus og plugins

Svært ofte brukes en plugin for å starte en slags konsollverktøy under utførelsen av en bestemt fase. Dessuten kan vi til og med kjøre en vanlig Java-klasse (som har en hovedmetode, selvfølgelig).

Eksempel:

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

Vanligvis kan plugins være svært fleksibelt konfigurert. Alle offisielle plugins fra Maven-utviklere er veldig godt dokumentert på den offisielle Maven-nettsiden. For eksempel, for maven-compiler-plugin på Apache Maven Project-siden, kan du se en liste over alle variablene som styrer plugin-en. Informasjon om plugin er tilgjengelig på lenken

Mer viktig informasjon. Ulike plugins kalles av Maven på forskjellige stadier av livssyklusen. For eksempel har et prosjekt som beskriver en swing Java desktop-applikasjon forskjellige livssyklusstadier enn de som er typiske for utvikling av en webapplikasjon (krig).

Eller, for eksempel, når kommandoen "mvn test" utføres, startes et helt sett med trinn i prosjektets livssyklus: "prosessressurser", "kompilere", "prosessklasser", "prosesstest". -ressurser", "test-kompilere" , test. Du kan se omtale av disse fasene i meldingene som vises 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 er det også noe som heter et mål (mål). Målet er omtrent som Maven-oppstartsmålet. Hovedmålene sammenfaller med hovedfasene:

  • validere;
  • kompilere;
  • test;
  • pakke;
  • bekrefte;
  • installere;
  • utplassere.

I hver fase av prosjektets livssyklus kalles en spesifikk plugin (jar-library), som inkluderer en rekke mål (mål)

For eksempel inneholder "maven-compiler-plugin" plugin to mål: compiler:compile for kompilering av prosjektets hovedkildekode, og compiler:testCompile for kompilering av tester. Formelt kan listen over faser endres, selv om dette sjelden er nødvendig.

Hvis du trenger å utføre noen ikke-standard handlinger i en bestemt fase, trenger du bare å legge til den aktuelle plugin til 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 viktigste i dette tilfellet er å definere navnet på "utførelse/fase"-fasen for plugin-modulen, der du må bygge inn kallet til målet for plugin-programmet "mål". For eksempel må du generere Java-kode basert på xml. Da trenger du "generer-kilder"-fasen, som plasseres før kallet til kompileringsfasen og er ideell for å generere deler av prosjektets kilder.

Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION