CodeGym /Java blogg /Slumpmässig /Del 4. Grunderna i Maven
John Squirrels
Nivå
San Francisco

Del 4. Grunderna i Maven

Publicerad i gruppen
Detta material är en del av serien "Introduktion till företagsutveckling". Tidigare artiklar: Del 4. Grunderna i Maven - 1Maven är ett verktyg för att hantera och bygga projekt — en Java-programmerares hjälpsamma assistent. Det gör livet enklare för utvecklare i alla skeden av arbetet: från att skapa projektstrukturen och ansluta de nödvändiga biblioteken till att distribuera produkten på servern. Du måste använda Maven när du arbetar med vilket ramverk som helst. Så låt oss idag ta en titt på dess huvudfunktioner och se hur man använder dem.

Steg-för-steg installation av Maven

  1. Först måste vi installera Maven. Ladda ner den från denna länk .

  2. Packa sedan upp det nedladdade arkivet och ställ in miljövariabeln M2_HOME till platsen för det uppackade arkivet. Till exempel, C:\\Program Files\\maven\\

  3. För att säkerställa att allt är installerat, kör följande på kommandoraden:

    mvn -version

  4. Om versionsinformationen för Maven, Java, etc. visas, är allt klart att köra.

  5. Öppna nu IntelliJ IDEA och skapa ett nytt projekt. I det första fönstret väljer du Maven:

    Del 4. Grunderna i Maven - 2
  6. Klicka på "Nästa" och fyll i fönstret som visas:

    Del 4. Grunderna i Maven - 3
  7. Skapa sedan som vanligt ett projekt var du vill.

    När projektet har skapats, notera dess struktur:

    Del 4. Grunderna i Maven - 4
Detta är standardstrukturen för ett Maven-projekt :
  • mappen src /main/java innehåller Java-klasserna
  • mappen src /main/resources innehåller resurserna som används av programmet (HTML-sidor, bilder, stilmallar, etc.)
  • mappen src/test är för tester
Var också uppmärksam på filen som heter pom.xml . Detta är huvudfilen för att hantera Maven . Hela projektbeskrivningen finns här. Det finns inte för mycket information för tillfället, men vi kommer att lägga till det nu.

Hantera beroenden i Maven

Du kanske har stött på frasen "beroendeansvarig". Maven vet hur man hanterar beroenden. Tack vare Maven behöver du inte spendera mycket tid på att söka på Internet efter ett obligatoriskt bibliotek, ladda ner det och sedan ansluta det till ditt projekt. Istället lägger du bara till det nödvändiga biblioteket till listan över beroenden i Maven.

Beroenden anges i beroendenoden i filen pom.xml

Låt oss säga att du behöver Apache Commons IO-biblioteket i ditt projekt för att förenkla arbetet med filer. För att lägga till ett bibliotek skriver vi fem rader i pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Nu bör din pom.xml-fil se ut så här:

  <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Efter det, tillåt IntelliJ IDEA att importera beroendet (en dialogruta bör visas i det nedre högra hörnet). Nu är biblioteket redo att användas:

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Alla efterföljande beroenden måste också skrivas inuti taggen <dependencies>. Du kanske undrar hur du hittar informationen om biblioteket som du behöver ange inuti taggen <dependency>. Det är lätt. Tre parametrar måste alltid ställas in: "groupId", "artifactId" och "version". Det finns två sätt att bestämma dessa parametrar:
  1. På bibliotekets hemsida. Om vi ​​behöver Apache Commons IO-biblioteket går vi till den officiella webbplatsen och väljer fliken "Beroendeinformation". All nödvändig information finns här - du kan helt enkelt kopiera den och lägga till den i <dependencies>noden.

  2. I ett Maven-förråd . Skriv "apache commons io" i sökfältet så ser du alla tillgängliga versioner av biblioteket. När du har valt rätt kopierar du bara följande:

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    och lägg till den i din pom.xml.

Typer av Maven-förråd

Det är värt besväret för oss att nämna Maven-förråd igen, eftersom vi faktiskt har två av dem: ett fjärrlager (centralt) och ett lokalt (på din dator) förråd. Alla bibliotek som du lägger till i dina projekt sparas i det lokala arkivet. När Maven lägger till ett obligatoriskt beroende till ett projekt kontrollerar den först om biblioteket redan finns i det lokala arkivet. Den kommer bara åt fjärrförvaret om den inte hittar biblioteket lokalt. Som du kan se kan du använda Maven för att lägga till beroenden, men det är inte allt det kan göra.

Bygga ett Java-projekt med Maven

Denna förmåga kan verka meningslös för en nybörjare. Varför behöver vi detta om vi har en IDE? Låt mig förklara. För det första kanske servern där du ska bygga din applikation varken ha en utvecklingsmiljö eller ett grafiskt gränssnitt. För det andra, på stora projekt, gör Maven ett bättre jobb med att bygga projektet. Så utan ytterligare adieu kommer vi att överväga processen att bygga en applikation med Maven.

Faser

Processen att bygga en applikation är känd för ett Maven-projekts livscykel, och den består av faser. Du kan titta på dem i IDEA genom att klicka på Maven > exempel > Livscykel i det övre högra hörnet: Del 4. Grunderna i Maven - 5Som du kan se finns det 9 faser:
  1. ren — tar bort alla kompilerade filer från målkatalogen (platsen där färdiga artefakter sparas)
  2. validera — kontrollerar om all information som krävs för att bygga projektet finns
  3. kompilera — kompilerar källkodsfiler
  4. test — startar tester
  5. paket — paket kompilerade filer (i ett JAR-, WAR-, etc.-arkiv)
  6. verifiera — kontrollerar om den paketerade filen är klar
  7. installera — placerar paketet i det lokala arkivet. Nu kan det användas av andra projekt som ett externt bibliotek
  8. webbplats — skapar projektdokumentation
  9. deploy — kopierar det inbyggda arkivet till fjärrarkivet
Alla faser utförs sekventiellt: till exempel kan den fjärde fasen inte startas förrän faserna 1-3 är klara. Det finns två sätt att starta en fas:
  • genom kommandoraden:

    mvn paket

    Del 4. Grunderna i Maven - 6
  • använder IntelliJ IDEA:

    Del 4. Grunderna i Maven - 7

    Innan paketfasen startar utförs faserna för validering, kompilering och test. Den rena fasen är ett undantag. Det är en bra idé att köra den här fasen före varje konstruktion av projektet. Du kan lista flera faser, separera dem med mellanslag:

    mvn rent paket.

Varje fas har också för- och efterfaser: till exempel pre-deploy, post-deploy, pre-clean, post-clean, etc. men de används ganska sällan. Dessutom har varje fas mål. Standardmål är inställda som standard. Ytterligare mål läggs till av Maven-plugins. Ibland under en fas kan du behöva utföra ytterligare funktioner. Det finns Maven-plugins för detta. En lista över officiella plugins finns på Mavens webbplats . Men du bör veta att det finns många anpassade plugins som kan hittas på tredje parts webbplatser. Och naturligtvis, om något exotiskt behov uppstår, kan du alltid skriva ett anpassat plug-in själv .

Plugins

För att lägga till en Maven-plugin till projektet måste vi lägga till dess beskrivning till pom.xml-filen, med hjälp av <build>och <plugins>taggar, liknande hur vi lade till beroenden. Anta till exempel att vi behöver en plugin för att verifiera att vi använder den senaste versionen av alla våra externa bibliotek. Efter lite sökning på Internet kunde du hitta detta plugin och instruktioner om hur du använder det. Låt oss ställa in groupId, artifactId och version. Vi kommer att ange vilka mål pluginen måste uppfylla och i vilken fas. I vårt fall är beroendekontrollen i den aktuella pom.xml inställd att ske under valideringsfasen. Nu ser vår pom.xml-fil ut så här:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Vi skulle kunna fortsätta arbeta med vårt projekt. Men låt oss försöka ändra versionen av Apache Commons IO till 2.0 och bygga projektet. Vi får

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
Här har vi ett byggfel som genereras av plugin. Felmeddelandet säger att vi använder version 2.0 när version 2.6 är tillgänglig. I grund och botten är Maven ett mycket användbart verktyg. Kanske verkar det svårt att använda i början, men öva! Skapa dina projekt med Maven, och efter ett tag kommer du att vara mycket nöjd med slutresultatet. Den här artikeln utelämnade medvetet många detaljer om Maven - vi fokuserade på det viktigaste. Men det finns ingen gräns för förbättring: du kan läsa mer om Maven på dess officiella hemsida . Del 5. Servlets och Java Servlet API. Att skriva en enkel webbapplikation Del 6. Servletbehållare Del 7. Introduktion av MVC-mönstret (Model-View-Controller)
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION