Maven Tutorial: Alt du trenger å vite for å komme i gang

Denne bloggen på Maven-opplæringen dekker alt du trenger å vite for å komme i gang med Maven for å bygge prosjektene dine.

I stedet for å skrive lange skript for å bygge prosjekter og manuelt laste ned avhengighetene, hvorfor ikke bruke Maven og bli kvitt dette rotet. Denne bloggen på Maven-opplæringen vil dekke alt du trenger for å komme i gang med å bruke Maven til prosjektet ditt. Etter å ha forstått denne Maven-opplæringen grundig, vil neste sannsynlige trinn være å lære Jenkins som dekker den kontinuerlige integrasjonsfasen av .

I denne bloggen på Maven tutorial vil vi dekke følgende emner:

  1. Hvorfor trenger vi Maven?
  2. Hva er Maven?
  3. Maven Architecture
  4. Maven livssyklus, faser og mål
  5. Demoprosjekt.

Hvorfor trenger vi Maven?

Hvis du jobber med Java-prosjekter, trenger du ofte avhengigheter. Avhengigheter er bare biblioteker eller JAR-filer. Du må laste ned og legge dem til manuelt. Oppgaven med å oppgradere programvarestakken for prosjektet ble også gjort manuelt før Maven. Så det var behov for et bedre byggeverktøy som kunne håndtere slike problemer.



Dette hvor Maven kommer inn i bildet. Maven kan løse alle problemene dine knyttet til avhengigheter. Du trenger bare å spesifisere avhengighetene og programvareversjonen du vil ha i pom.xml-filen i Maven og Maven tar seg av resten.Så la oss prøve å forstå hva Maven er.

Hva er Maven?

Maven-prosjektet er utviklet av Apache Software Foundation hvor det tidligere var en del av Jakarta-prosjektet. Maven er et kraftig byggeautomatiseringsverktøy som primært brukes til Java-baserte prosjekter. Maven hjelper deg med å takle to kritiske aspekter ved å bygge programvare -

  • Den beskriver hvordan programvare er bygget
  • Den beskriver avhengighetene.

Maven foretrekker konvensjon fremfor konfigurasjon. Maven laster ned Java-biblioteker og Maven-plugin-moduler dynamisk fra ett eller flere arkiver som Maven Central Repository og lagrer dem i en lokal cache. Artefaktene til de lokale prosjektene kan også oppdateres med denne lokale hurtigbufferen. Maven kan også hjelpe deg med å bygge og administrere prosjekter skrevet på C #, Ruby, Scala og andre språk.

marionett vs kokk vs ansible

Project Object Model (POM) -fil er en XML-fil som inneholder informasjon relatert til prosjektet og konfigurasjonsinformasjon som avhengigheter, kildekatalog, plugin, mål osv. Som brukes av Maven for å bygge prosjektet. Når du kjører en maven-kommando, gir du maven en POM-fil for å utføre kommandoene. Maven leser pom.xml-filen for å oppnå konfigurasjonen og operasjonene.

Maven mål

Maven mål

Når skal noen bruke Maven?

    1. Hvis det er for mange avhengigheter for prosjektet.
    2. Når avhengighetsversjonen oppdateres ofte.
    3. Kontinuerlige bygg, integrering og testing kan enkelt håndteres ved hjelp av maven.
    4. Når man trenger en enkel måte å generere dokumentasjon fra kildekoden, kompilering av kildekoden, pakking av kompilert kode i JAR-filer eller ZIP-filer.

Maven Architecture

Maven livssyklus, faser og mål

1. Maven livssyklus

Det er en bestemt livssyklus som Maven følger for å distribuere og distribuere målprosjektet.

Det er tre innebygde livssykluser:

  • misligholde - Dette er den viktigste livssyklusen til Maven, siden den er ansvarlig for prosjektutplassering.
  • ren - Denne livssyklusen brukes til å rense prosjektet og fjerne alle filer generert av forrige versjon.
  • nettstedet - Målet med denne livssyklusen er å lage prosjektets nettstedsdokumentasjon.

Hver livssyklus består av en sekvens av faser. Standard bygges livssyklus består av 23 faser, da det er den viktigste bygges livssyklusen til Maven

På den annen side består ren livssyklus av 3 faser, mens stedets livssyklus består av 4 faser.

2. Maven-faser

En Maven-fase er bare et stadium i Maven-bygges livssyklus. Hver fase utfører en bestemt oppgave.

Her er noen viktige faser i standard byggesyklus -

  • validere - Denne fasen kontrollerer om all nødvendig informasjon for bygningen er tilgjengelig
  • kompilere - Denne fasen kompilerer kildekoden
  • test-kompilere - Denne fasen kompilerer testkildekoden
  • test - Denne fasen kjører enhetstester
  • pakke - Denne fasen pakker samlet kildekode i distribuerbart format (jar, war)
  • integrasjonstest - Denne fasen behandler og distribuerer pakken om nødvendig for å kjøre integrasjonstester
  • installere - Denne fasen installerer pakken i et lokalt depot
  • utplassere - Denne fasen kopierer pakken til det eksterne depotet

Maven utfører faser i en bestemt rekkefølge. Dette betyr at hvis vi kjører en bestemt fase ved hjelp av kommandoen som mvn, vil dette ikke bare utføre den spesifiserte fasen, men også alle de foregående fasene.

For eksempel, hvis du kjører kommandoen mvn deploy, det vil si distribusjonsfasen som er den siste fasen i standard byggesyklus, så vil dette også utføre alle faser før distribusjonsfasen.

3. Maven mål

En sekvens av mål utgjør en fase, og hvert mål utfører en bestemt oppgave. Når du kjører en fase, utfører Maven alle målene i en rekkefølge som er knyttet til den fasen. Syntaksen som brukes er plugin: goal. Noen av fasene og standardmålene knyttet til dem er som følger:

  • kompilator: kompilere - kompilere fase
  • kompilator: test - test-kompileringsfase
  • surefire: test - testfase
  • install: install - installer fase
  • krukke og krig: krig - pakkefase

Et Maven-plugin er en gruppe mål. Imidlertid er disse målene ikke nødvendigvis alle bundet til samme fase.For eksempel Maven Failsafe-plugin som er ansvarlig for å kjøre integrasjonstester. For enhetstesting trenger du Maven surefire plugin.

Demoprosjekt

I denne delen av Maven tutorial vil vi se på et demoprosjekt. For å demonstrere hvordan du bygger et prosjekt ved hjelp av Maven, har jeg laget et Java-prosjekt sammen med TestNG ved hjelp av Eclipse IDE. Dette er et veldig enkelt program der jeg har skrevet kode for å teste tittelen på et nettsted.

Programmet starter automatisk en nettleser, navigerer til nettstedet nevnt i koden, henter tittelen på den websiden og sammenligner den med den forventede tittelen. Hvis den faktiske tittelen og den forventede tittelen samsvarer, så går prøvesaken, ellers mislykkes den.

Så for dette prosjektet trenger du , Maven og Eclipse lastet ned på systemet ditt. Versjonene jeg bruker på systemet mitt er som følger -

  1. Formørkelse - Enterprise Edition versjon 4.12.0 (2019-06)
  2. Java - versjon 1.8.0_211
  3. Maven - versjon 3.6.1
  • Bortsett fra dette, må du laste ned TestNG-plugin for Eclipse, og du kan laste den ned ved å følge trinnene -
    • Åpne formørkelse og gå til Hjelp. I Hjelp klikker du på Eclipse-markedet.
    • Skriv TestNG i Finn-boksen, og klikk på Gå. I resultatene vil du se “TestNG for Eclipse”. Du må laste den ned.
  • Etter at du har konfigurert systemet med de ovennevnte tingene, er du klar til å lage et demoprosjekt ved hjelp av Maven. Så nå skal jeg fortelle deg alle trinnene som kreves for å gjøre dette.
    • I Eclipse klikker du på File -> New -> Maven Project.
    • Klikk på Opprett et enkelt prosjekt (hopp over arketypevalg) og klikk deretter på neste.
  • Nå vil du se et vindu med parametere som Group Id, Artifact Id og så videre.
    • Group Id er den unike iden til en gruppe som eier prosjektet.
    • Artifact Id er navnet på den endelige kompilasjonsenheten.
    • Versjon er versjonen av den opprinnelige gjenstanden. SNAPSHOT indikerer pågående arbeid.
    • Emballasjen kan være krukke, krig eller pom, avhengig av prosjektet ditt. For prosjektet vårt velger vi jar. Gi deretter navnet på prosjektet ditt.

  • Når du har opprettet prosjektet, vil du se prosjektstrukturen til Maven-prosjektet ditt. Her kan du se følgende ting -
    • pom.xml
    • src og mål
    • src / main / java
    • src / test / java
    • Maven avhengigheter
  • Opprett nå en klassefil i src / main / test og gi den navnet DemoClass. Denne klassen inneholder Selen-koden som vi bruker til testing. Nå har vi lagt til Selenium, TestNG avhengigheter og Maven kompilator og Surefire plugin til pom.xml filen. Koden for DemoClass og pom.xml er gitt 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 av objekter / variabler //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver driver = new FirefoxDriver () // comment the above 2 lines and uncomment below 2 linjer for å bruke Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver driver = ny ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String expectTitle = 'Welcome: Mercury Tours' String actualTitle = '' // start Fire fox og diriger den til Base URL-driveren. Get (baseUrl) // få den faktiske verdien av tittelen actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * sammenlign den faktiske tittelen på siden med den forventede og skriv ut * resultatet som 'Bestått' eller 'Mislyktes' * / hvis (actualTitle.contentEquals (forventet tittel)) {System.out.println ('Test bestått!')} annet {System.out.println ('Test mislyktes')} // lukk 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 kjører prosjektet, må vi konvertere klassefilen DemoClass til en TestNG-fil. For å gjøre det, høyreklikk på DemoClass -> TestNG -> Convert to TestNG.

  • Nå for å kjøre prosjektet, høyreklikker du på et prosjekt -> Kjør som -> Maven clean. Dette vil fjerne prosjektet ved å fjerne alle tidligere bygg.

    hvordan lage en Java-pakke
  • Etter at Maven er ren, må du teste prosjektet siden vi har skrevet koden for å teste webapplikasjonen. Så høyreklikk på prosjekt -> Kjør som -> Maven test. Dette åpner nettstedet og samsvarer med tittelen på nettstedet. Hvis det stemmer overens, vil testsaken vår bestå.

  • Vi kan også utføre kommandoene ovenfor ved hjelp av en ledetekst. For det trenger vi banen til pom.xml-filen.

    • Du kan få banen ved å høyreklikke på pom.xml-filen -> Egenskaper -> Plassering.
    • Kopier banen, åpne en ledetekst og lim den inn der ved hjelp av cd. cd C: / Users / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Når du har gjort dette, kan du igjen skrive Maven-kommandoer som mvn clean og mvn test.

Så dette er det fra min side i denne bloggen på Maven tutorial. Jeg håper du har forstått tingene vi har diskutert i denne Maven-opplæringen.

Nå som du har forstått denne Maven-opplæringen, sjekk ut dette av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edureka DevOps Certification Training-kurset hjelper elever til å forstå hva som er DevOps og få ekspertise i forskjellige DevOps-prosesser og verktøy som Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack og GIT for å automatisere flere trinn i SDLC.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne Maven-opplæringen, så kommer vi tilbake til deg