
Trin-for-trin installation af Maven
-
Først skal vi installere Maven. Download det fra dette link .
-
Udpak derefter det downloadede arkiv og sæt miljøvariablen M2_HOME til placeringen af det udpakkede arkiv. For eksempel, C:\\Program Files\\maven\\
-
For at sikre, at alt er installeret, skal du udføre følgende på kommandolinjen:
mvn -version
-
Hvis versionsoplysningerne for Maven, Java osv. vises, er alt klar til at gå.
-
Åbn nu IntelliJ IDEA og opret et nyt projekt. I det første vindue skal du vælge Maven:
-
Klik på "Næste" og udfyld vinduet, der vises:
-
Så lav som sædvanlig et projekt, hvor du vil.
Når projektet er blevet oprettet, skal du notere dets struktur:
- mappen src /main/java indeholder Java-klasserne
- mappen src/main/resources indeholder de ressourcer, der bruges af applikationen (HTML-sider, billeder, typografiark osv.)
- src /test- mappen er til test
Håndtering af afhængigheder i Maven
Du er måske stødt på udtrykket "afhængighedsleder". Maven ved, hvordan man håndterer afhængigheder. Takket være Maven behøver du ikke bruge meget tid på at søge på internettet efter et påkrævet bibliotek, downloade det og derefter forbinde det til dit projekt. I stedet tilføjer du bare det nødvendige bibliotek til listen over afhængigheder i Maven.Afhængigheder er angivet i afhængighedsnoden i pom.xml-filen
Lad os sige, at du har brug for Apache Commons IO-biblioteket i dit projekt for at forenkle arbejdet med filer. For at tilføje et bibliotek skriver vi fem linjer i pom.xml:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Nu skulle din pom.xml-fil se sådan ud:
<?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>
Tillad derefter IntelliJ IDEA at importere afhængigheden (en dialogboks skulle vises i nederste højre hjørne). Nu er biblioteket klar til brug:
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMaven {
public static void main(String[] args) {
File tempDirectory = FileUtils.getTempDirectory();
}
}
Alle efterfølgende afhængigheder skal også skrives inde i <dependencies>
tagget. Du undrer dig måske over, hvordan du finder ud af de oplysninger om biblioteket, som du skal angive inde i tagget <dependency>
. Det er nemt. Tre parametre skal altid indstilles: "groupId", "artifactId" og "version". Der er to måder at bestemme disse parametre på:
-
På bibliotekets hjemmeside. Hvis vi har brug for Apache Commons IO-biblioteket, går vi til den officielle hjemmeside og vælger fanen "Afhængighedsoplysninger". Alle de nødvendige oplysninger er her - du kan blot kopiere dem og tilføje dem til noden
<dependencies>
. -
I et Maven-depot . Indtast "apache commons io" i søgefeltet, og du vil se alle tilgængelige versioner af biblioteket. Når du har valgt den rigtige, skal du blot kopiere følgende:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
og tilføj det til din pom.xml.
Typer af Maven-depoter
Det er umagen værd for os at nævne Maven-depoter igen, fordi vi faktisk har to af dem: et eksternt (centralt) lager og et lokalt (på din computer) lager. Alle biblioteker, som du tilføjer til dine projekter, gemmes i det lokale lager. Når Maven tilføjer en påkrævet afhængighed til et projekt, kontrollerer den først, om biblioteket allerede eksisterer i det lokale lager. Den får kun adgang til fjernlageret, hvis den ikke finder biblioteket lokalt. Som du kan se, kan du bruge Maven til at tilføje afhængigheder, men det er ikke alt, den kan.Opbygning af et Java-projekt ved hjælp af Maven
Denne evne kan virke meningsløs for en nybegynder. Hvorfor har vi brug for dette, hvis vi har en IDE? Lad mig forklare. For det første har serveren, hvor du skal bygge din applikation, muligvis hverken et udviklingsmiljø eller en grafisk grænseflade. For det andet, på store projekter, gør Maven et bedre stykke arbejde med at bygge projektet. Så uden yderligere adieu vil vi overveje processen med at bygge en applikation ved hjælp af Maven.Faser
Processen med at bygge en applikation er kendt for et Maven-projekts livscyklus, og den består af faser. Du kan se dem i IDEA ved at klikke på Maven > eksempel > Livscyklus i øverste højre hjørne:
- clean — fjerner alle kompilerede filer fra målbiblioteket (det sted, hvor færdige artefakter gemmes)
- validere — kontrollerer, om alle de nødvendige oplysninger for at bygge projektet er til stede
- kompiler — kompilerer kildekodefiler
- test — starter test
- pakke — pakker kompilerede filer (i et JAR, WAR, etc. arkiv)
- verify — kontrollerer, om den pakkede fil er klar
- installer — placerer pakken i det lokale lager. Nu kan det bruges af andre projekter som et eksternt bibliotek
- websted — opretter projektdokumentation
- deploy — kopierer det indbyggede arkiv til fjernlageret
-
gennem kommandolinjen:
mvn pakke
-
bruger IntelliJ IDEA:
Før pakkefasen starter, udføres validerings-, kompilerings- og testfaserne. Den rene fase er en undtagelse. Det er en god idé at køre denne fase før hver opbygning af projektet. Du kan angive flere faser, adskille dem med mellemrum:
mvn ren pakke.
Plugins
For at tilføje et Maven-plugin til projektet, skal vi tilføje dets beskrivelse til pom.xml-filen ved hjælp af<build>
og <plugins>
tags, svarende til hvordan vi tilføjede afhængigheder. Antag for eksempel, at vi har brug for et plugin for at bekræfte, at vi bruger den nyeste version af alle vores eksterne biblioteker. Efter lidt søgning på internettet kunne du finde dette plugin og instruktioner om, hvordan du bruger det. Lad os indstille groupId, artefactId og version. Vi angiver, hvilke mål pluginnet skal opfylde og i hvilken fase. I vores tilfælde er afhængighedskontrollen i den aktuelle pom.xml indstillet til at ske under valideringsfasen. Nu ser vores pom.xml-fil sådan ud:
<?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 kunne fortsætte med at arbejde på vores projekt. Men lad os prøve at ændre versionen af Apache Commons IO til 2.0 og bygge 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]
Her har vi en byggefejl genereret af plugin'et. Fejlmeddelelsen angiver, at vi bruger version 2.0, når version 2.6 er tilgængelig. Grundlæggende er Maven et meget nyttigt værktøj. Måske vil det virke svært at bruge i starten, men øv dig! Opret dine projekter ved hjælp af Maven, og efter et stykke tid vil du være meget tilfreds med slutresultatet. Denne artikel har bevidst udeladt en masse detaljer om Maven - vi fokuserede på det mest væsentlige. Men der er ingen grænse for forbedring: du kan læse mere om Maven på dens officielle hjemmeside . Del 5. Servlets og Java Servlet API. Skrivning af en simpel webapplikation Del 6. Servlet-beholdere Del 7. Introduktion til MVC (Model-View-Controller) mønsteret
GO TO FULL VERSION