Maven Tutorial: Alt hvad du behøver at vide for at komme i gang

Denne blog om Maven-tutorial dækker alt, hvad du har brug for at vide for at komme i gang med Maven til opbygning af dine projekter.

I stedet for at skrive lange scripts til opbygning af dine projekter og manuelt downloade afhængighederne, hvorfor ikke bruge Maven og slippe af med dette rod. Denne blog om Maven-vejledning dækker alt, hvad du har brug for for at komme i gang med at bruge Maven til dit projekt. Efter en grundig forståelse af denne Maven-tutorial, er det næste sandsynlige trin at lære Jenkins, der dækker den kontinuerlige integrationsfase af .

I denne blog om Maven-vejledning vil vi dække følgende emner:



  1. Hvorfor har vi brug for Maven?
  2. Hvad er Maven?
  3. Maven Arkitektur
  4. Maven livscyklus, faser og mål
  5. Demoprojekt.

Hvorfor har vi brug for Maven?

Hvis du arbejder på Java-projekter, har du mest brug for afhængigheder. Afhængigheder er intet andet end biblioteker eller JAR-filer. Du skal downloade og tilføje dem manuelt. Opgaven med at opgradere softwarestakken til dit projekt blev også udført manuelt før Maven. Så der var behov for et bedre byggeværktøj, der kunne håndtere sådanne problemer.



Dette er hvor Maven kommer ind i billedet. Maven kan løse alle dine problemer relateret til afhængigheder. Du skal bare angive de afhængigheder og den softwareversion, du vil have i pom.xml-filen i Maven, og Maven tager sig af resten.Så lad os nu prøve at forstå, hvad Maven er.

Hvad er Maven?

Maven-projektet er udviklet af Apache Software Foundation, hvor det tidligere var en del af Jakarta-projektet. Maven er et kraftfuldt byggeautomatiseringsværktøj, der primært bruges til Java-baserede projekter. Maven hjælper dig med at tackle to kritiske aspekter af bygningssoftware -



  • Den beskriver, hvordan software er bygget
  • Den beskriver afhængighederne.

Maven foretrækker konvention frem for konfiguration. Maven downloader dynamisk Java-biblioteker og Maven-plug-ins fra et eller flere arkiver såsom Maven Central Repository og gemmer dem i en lokal cache. Artefakterne fra de lokale projekter kan også opdateres med denne lokale cache. Maven kan også hjælpe dig med at opbygge og administrere projekter skrevet på C #, Ruby, Scala og andre sprog.

Project Object Model (POM) -fil er en XML-fil, der indeholder information relateret til projektet og konfigurationsoplysninger såsom afhængigheder, kildekatalog, plugin, mål osv., Der bruges af Maven til at opbygge projektet. Når du udfører en maven-kommando, giver du maven en POM-fil til at udføre kommandoerne. Maven læser pom.xml-filen for at udføre dens konfiguration og operationer.

Maven mål

Maven mål

Hvornår skal nogen bruge Maven?

    1. Hvis der er for mange afhængigheder til projektet.
    2. Når afhængighedsversionen opdateres ofte.
    3. Kontinuerlige builds, integration og test kan let håndteres ved hjælp af maven.
    4. Når man har brug for en nem måde at generere dokumentation fra kildekoden, kompilering af kildekoden, emballering af kompileret kode i JAR-filer eller ZIP-filer.

Maven Arkitektur

Maven livscyklus, faser og mål

1. Maven livscyklus



Der er en bestemt livscyklus, som Maven følger for at implementere og distribuere målprojektet.

java hvad er en instansvariabel

Der er tre indbyggede livscyklusser:

  • Standard - Dette er den primære livscyklus for Maven, da den er ansvarlig for implementering af projektet.
  • ren - Denne livscyklus bruges til at rense projektet og fjerne alle filer genereret af den tidligere version.
  • websted - Målet med denne livscyklus er at oprette projektets dokumentation på stedet.

Hver livscyklus består af en række faser. Standardbygningens livscyklus består af 23 faser, da det er den primære byggelevecyklus for Maven

På den anden side består ren livscyklus af 3 faser, mens stedets livscyklus består af 4 faser.

2. Maven-faser

En Maven-fase er intet andet end en fase i Maven-byggets livscyklus. Hver fase udfører en bestemt opgave.

Her er et par vigtige faser i standardbygningens livscyklus -

  • valider - Denne fase kontrollerer, om alle nødvendige oplysninger til build er tilgængelige
  • udarbejde - Denne fase kompilerer kildekoden
  • test-kompilere - Denne fase kompilerer testkildekoden
  • prøve - Denne fase kører enhedstest
  • pakke - Denne fase pakker kompileret kildekode i det distribuerbare format (jar, war)
  • integration-test - Denne fase behandler og implementerer pakken, hvis det er nødvendigt for at køre integrationstest
  • installere - Denne fase installerer pakken i et lokalt lager
  • indsætte - Denne fase kopierer pakken til fjernlageret

Maven udfører faser i en bestemt rækkefølge. Dette betyder, at hvis vi kører en bestemt fase ved hjælp af kommandoen som mvn, udfører dette ikke kun den angivne fase, men også alle de foregående faser.

For eksempel, hvis du kører kommandoen mvn deploy, det vil sige implementeringsfasen, som er den sidste fase i standardbygningens livscyklus, vil dette også udføre alle faser inden implementeringsfasen.

3. Maven Goals

En sekvens af mål udgør en fase, og hvert mål udfører en bestemt opgave. Når du kører en fase, udfører Maven alle målene i en rækkefølge, der er knyttet til den fase. Den anvendte syntaks er plugin: mål. Nogle af faserne og standardmålene bundet til dem er som følger:

  • compiler: kompilere - kompilere fase
  • kompilator: test - test-kompileringsfase
  • sikker sikkerhed: test - testfase
  • install: install - installationsfase
  • krukke og krig: krig - pakkefase

Et Maven-plugin er en gruppe af mål. Disse mål er dog ikke nødvendigvis alle bundet til den samme fase.For eksempel Maven Failsafe-pluginet, som er ansvarligt for at køre integrationstest. Til enhedstest har du brug for Maven surefire-plugin.

Demoprojekt

I dette afsnit af Maven tutorial, vi vil se på et demoprojekt. For at demonstrere, hvordan man bygger et projekt ved hjælp af Maven, har jeg oprettet en Java-projekt sammen med TestNG ved hjælp af Eclipse IDE. Dette er et meget simpelt program, hvor jeg har skrevet kode for at teste titlen på et websted.

Programmet starter automatisk en webbrowser, navigerer til det websted, der er nævnt i koden, henter titlen på den webside og sammenligner den med den forventede titel. Hvis den faktiske titel og den forventede titel matcher, består testsagen, ellers fejler den.

Så til dette projekt har du brug for , Maven og Eclipse downloadet på dit system. De versioner, jeg bruger på mit system, er som følger -

  1. Formørkelse - Enterprise Edition version 4.12.0 (2019-06)
  2. Java - version 1.8.0_211
  3. Maven - version 3.6.1
  • Bortset fra dette skal du downloade TestNG-plugin til Eclipse, og du kan downloade det ved hjælp af følgende trin -
    • Åbn Eclipse, og gå til Hjælp. Klik på Hjælp på Eclipse-markedet.
    • Skriv TestNG i Find-feltet, og klik på Gå. I resultaterne vil du se “TestNG for Eclipse”. Du skal downloade det.
  • Når du har konfigureret dit system med de ovennævnte ting, er du klar til at oprette et demoprojekt ved hjælp af Maven. Så nu vil jeg fortælle dig alle de nødvendige skridt til at gøre dette.
    • I Eclipse skal du klikke på File -> New -> Maven Project.
    • Klik på Opret et simpelt projekt (spring arketypevalg over), og klik derefter på næste.
  • Nu vil du se et vindue med parametre som gruppe-id, artefakt-id og så videre.
    • Group Id er den unikke id for en gruppe, der ejer projektet.
    • Artifact Id er navnet på den endelige kompileringsenhed.
    • Version er versionen af ​​den oprettede artefakt. SNAPSHOT angiver igangværende arbejde.
    • Emballage kan være krukke, krig eller pom afhængigt af dit projekt. Til vores projekt vælger vi jar. Angiv derefter navnet på dit projekt.

  • Når du har oprettet projektet, vil du se projektstrukturen i dit Maven-projekt. Her kan du se følgende ting -
    • pom.xml
    • src og mål
    • src / main / java
    • src / test / java
    • Maven afhængigheder
  • Opret nu en klassefil i src / main / test, og navngiv den DemoClass. Denne klasse indeholder den selenkode, som vi bruger til testning. Nu har vi tilføjet Selenium, TestNG afhængigheder og Maven compiler og Surefire plugin til pom.xml filen. Koden til DemoClass og pom.xml er angivet nedenfor:
pakke maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test offentlig klasse DemoClass {@Test offentlig ugyldig test () kaster InterruptedException {// erklæring og instantiering af objekter / variabler //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver driver = ny FirefoxDriver () // kommenter ovenstående 2 linjer og kommentar nedenfor 2 linjer til at bruge Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver driver = ny ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String expectTitle = 'Velkommen: Mercury Tours' String actualTitle = '' // Start Fire fox og diriger den til Base URL-driveren. Get (baseUrl) // få den aktuelle værdi af titlen actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * Sammenlign den aktuelle titel på siden med den forventede og udskriv * resultatet som 'Bestået' eller 'Mislykket' * / hvis (actualTitle.contentEquals (forventet titel)) {System.out.println ('Test bestået!')} andet {System.out.println ('Test mislykkedes')} // luk Fire fox driver.close ()}}
4.0.0 maven.selenium maven.selenium.testng 0.0.1-SNAPSHOT EdurekaDemo 2.53.1 6.9.10 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.18 .1 testng.xml org.seleniumhq.selenium selen-java 3.141.59 org.testng testng 6.14.3 test
  • Før vi kører projektet, skal vi konvertere klassefilen DemoClass til en TestNG-fil. For at gøre det skal du højreklikke på DemoClass -> TestNG -> Konverter til TestNG.

  • For at køre projektet skal du højreklikke på et projekt -> Kør som -> Maven clean. Dette rydder projektet ved at fjerne alle tidligere builds.

  • Når Maven er renset, skal du teste projektet, da vi har skrevet koden til test af webapplikationen. Så højreklik på projekt -> Kør som -> Maven test. Dette åbner webstedet og matcher titlen på webstedet. Hvis det stemmer overens, vil vores testsag bestå.

  • Vi kan også udføre ovenstående kommandoer ved hjælp af en kommandoprompt. Til det har vi brug for stien til pom.xml-filen.

    • Du kan få stien ved at højreklikke på pom.xml-filen -> Egenskaber -> Placering.
    • Kopier stien, åbn derefter en kommandoprompt og indsæt den der ved hjælp af cd. cd C: / Brugere / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Når du har gjort dette, kan du igen skrive Maven-kommandoer som mvn clean og mvn test.

Så dette er det fra min side i denne blog på Maven tutorial. Jeg håber, du har forstået de ting, som vi har diskuteret i denne Maven-tutorial.

Nu hvor du har forstået denne Maven-tutorial, skal du tjekke dette af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringstræningskurset hjælper eleverne med at forstå, hvad der er DevOps og få ekspertise i forskellige DevOps-processer og -værktøjer såsom Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack og GIT til automatisering af flere trin i SDLC.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne Maven-tutorial, og vi vender tilbage til dig