Maven Tutorial: Allt du behöver veta för att komma igång



Denna blogg om Maven-handledning täcker allt du behöver veta för att komma igång med Maven för att bygga dina projekt.

Istället för att skriva långa skript för att bygga dina projekt och manuellt ladda ner beroenden, varför inte använda Maven och bli av med den här röran. Den här bloggen om Maven-handledning kommer att täcka allt du behöver för att komma igång med att använda Maven för ditt projekt. Efter att ha förstått denna Maven-handledning noggrant kommer nästa troliga steg att lära sig Jenkins som täcker den kontinuerliga integrationsfasen av .

I denna blogg om Maven-handledning kommer vi att täcka följande ämnen:

  1. Varför behöver vi Maven?
  2. Vad är Maven?
  3. Maven Architecture
  4. Maven livscykel, faser och mål
  5. Demoprojekt.

Varför behöver vi Maven?

Om du arbetar med Java-projekt behöver du oftast beroenden. Beroenden är inget annat än bibliotek eller JAR-filer. Du måste ladda ner och lägga till dem manuellt. Uppgiften att uppgradera programvarustacken för ditt projekt utfördes också manuellt före Maven. Så det fanns ett behov av ett bättre byggverktyg som skulle hantera sådana problem.





Det här där Maven kommer in i bilden. Maven kan lösa alla dina problem relaterade till beroenden. Du behöver bara ange beroenden och programvaruversionen du vill ha i pom.xml-filen i Maven och Maven tar hand om resten.Så nu ska vi försöka förstå vad Maven exakt är.

Vad är Maven?

Maven-projektet är utvecklat av Apache Software Foundation där det tidigare var en del av Jakarta-projektet. Maven är ett kraftfullt byggautomationsverktyg som främst används för Java-baserade projekt. Maven hjälper dig att hantera två viktiga aspekter av byggprogramvara -



  • Den beskriver hur programvara byggs
  • Den beskriver beroenden.

Maven föredrar konvention framför konfiguration. Maven hämtar dynamiskt Java-bibliotek och Maven-plugin-program från ett eller flera arkiv som Maven Central Repository och lagrar dem i en lokal cache. Artefakterna för de lokala projekten kan också uppdateras med den här lokala cachen. Maven kan också hjälpa dig att bygga och hantera projekt skrivna på C #, Ruby, Scala och andra språk.

Project Object Model (POM) -fil är en XML-fil som innehåller information relaterad till projektet och konfigurationsinformation som beroenden, källkatalog, plugin, mål, etc. som används av Maven för att bygga projektet. När du kör ett maven-kommando ger du maven en POM-fil för att utföra kommandona. Maven läser pom.xml-filen för att utföra dess konfiguration och funktioner.

Maven mål

Maven mål

När ska någon använda Maven?

    1. Om det finns för många beroenden för projektet.
    2. När beroendeversionen uppdateras ofta.
    3. Kontinuerliga byggnader, integration och testning kan enkelt hanteras med hjälp av maven.
    4. När man behöver ett enkelt sätt att generera dokumentation från källkoden, sammanställa källkoden, förpacka kompilerad kod till JAR-filer eller ZIP-filer.

Maven Architecture

Maven livscykel, faser och mål

1. Maven livscykel



Det finns en specifik livscykel som Maven följer för att distribuera och distribuera målprojektet.

Det finns tre inbyggda livscykler:

vad är skillnaden mellan git och github
  • standard - Detta är den huvudsakliga livscykeln för Maven eftersom den ansvarar för projektdistribution.
  • rena - Denna livscykel används för att rengöra projektet och ta bort alla filer som genererats av den tidigare versionen.
  • webbplats - Målet med denna livscykel är att skapa projektets dokumentation.

Varje livscykel består av en sekvens av faser. Standard bygglivscykeln består av 23 faser eftersom det är huvudbyggnadens livscykel för Maven

Å andra sidan består ren livscykel av 3 faser, medan platsens livscykel består av 4 faser.

2. Maven-faser

En Maven-fas är inget annat än ett stadium i Maven-byggnadens livscykel. Varje fas utför en specifik uppgift.

Här är några viktiga faser i standardbyggnadens livscykel -

  • bekräfta - Denna fas kontrollerar om all information som är nödvändig för byggnaden är tillgänglig
  • sammanställa - Den här fasen sammanställer källkoden
  • testkompilera - Denna fas sammanställer testkällkoden
  • testa - Denna fas kör enhetstester
  • paket - Denna fas paketerar kompilerad källkod i det distribuerbara formatet (burk, krig)
  • integration-test - Denna fas bearbetar och distribuerar paketet om det behövs för att köra integrationstester
  • Installera - Den här fasen installerar paketet i ett lokalt arkiv
  • distribuera - Den här fasen kopierar paketet till fjärrförvaret

Maven utför faser i en specifik ordning. Detta betyder att om vi kör en specifik fas med kommandot som mvn, körs inte bara den angivna fasen utan alla föregående faser också.

vad är hashmap i java

Till exempel, om du kör kommandot mvn deploy, det vill säga distribueringsfasen som är den sista fasen i standardbyggnadens livscykel, kommer detta också att utföra alla faser före distributionsfasen.

3. Maven mål

En sekvens av mål utgör en fas och varje mål utför en specifik uppgift. När du kör en fas utför Maven alla mål i en ordning som är associerad med den fasen. Syntaxen som används är plugin: goal. Några av faserna och standardmålen för dessa är följande:

  • kompilator: kompilera - kompilera fas
  • kompilator: test - test-kompilera fas
  • surefire: test - testfas
  • install: install - installera fas
  • burk och krig: krig - paketfas

Ett Maven-plugin är en grupp mål. Men dessa mål är inte nödvändigtvis alla bundna till samma fas.Till exempel Maven Failsafe-plugin som ansvarar för att köra integrationstester. För enhetstestning behöver du Maven surefire-plugin.

Demoprojekt

I detta avsnitt av Maven tutorial, vi kommer att ta en titt på ett demoprojekt. För att visa hur man bygger ett projekt med Maven har jag skapat en Java-projekt tillsammans med TestNG med Eclipse IDE. Detta är ett mycket enkelt program där jag har skrivit kod för att testa titeln på en webbplats.

Programmet startar automatiskt en webbläsare, navigerar till webbplatsen som nämns i koden, hämtar titeln på den webbsidan och jämför den med den förväntade titeln. Om den faktiska titeln och den förväntade titeln matchar, passerar testfallet annars, misslyckas det.

Så för det här projektet behöver du , Maven och Eclipse laddas ner på ditt system. De versioner som jag använder på mitt system är som följer -

  1. Förmörkelse - Enterprise Edition version 4.12.0 (2019-06)
  2. Java - version 1.8.0_211
  3. Maven - version 3.6.1
  • Bortsett från detta måste du ladda ner TestNG-plugin för Eclipse och du kan ladda ner det med följande steg -
    • Öppna Eclipse och gå till Hjälp. Klicka på Eclipse-marknaden i hjälp.
    • Skriv TestNG i Sök-rutan och klicka på Gå. I resultaten ser du “TestNG for Eclipse”. Du måste ladda ner den.
  • När du har konfigurerat ditt system med ovanstående saker är du redo att skapa ett demoprojekt med Maven. Så nu ska jag berätta alla steg som krävs för att göra detta.
    • I Eclipse klickar du på Arkiv -> Nytt -> Maven Project.
    • Klicka på Skapa ett enkelt projekt (hoppa över val av arketyp) och klicka sedan på nästa.
  • Nu ser du ett fönster med parametrar som Group Id, Artifact Id och så vidare.
    • Group Id är det unika Id för en grupp som äger projektet.
    • Artifact Id är namnet på den slutliga kompileringsenheten.
    • Version är versionen av den skapade artefakten. SNAPSHOT indikerar pågående arbete.
    • Förpackningen kan vara burk, krig eller pom beroende på ditt projekt. För vårt projekt väljer vi burk. Ange sedan projektets namn.

hur man använder scanner i java
  • När du väl har skapat projektet ser du projektstrukturen för ditt Maven-projekt. Här kan du se följande saker -
    • pom.xml
    • src och mål
    • src / main / java
    • src / test / java
    • Maven beroenden
  • Skapa nu en klassfil i src / main / test och ge den namnet DemoClass. Den här klassen innehåller Selen-koden som vi använder för testning. Nu har vi lagt till Selenium, TestNG-beroenden och Maven-kompilator och Surefire-plugin till pom.xml-filen. Koden för DemoClass och pom.xml ges nedan:
paketet maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test public class DemoClass {@Test public void test () kastar InterruptedException {// deklaration och instantiering av objekt / variabler //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver-drivrutin = ny FirefoxDriver () // kommenterar ovanstående 2 rader och kommenterar nedan 2 rader för att använda Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver-drivrutin = ny ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String expectTitle = 'Välkommen: Mercury Tours' String actualTitle = '' // starta Fire fox och rikta den till Base URL-drivrutinen. Get (baseUrl) // få det verkliga värdet på titeln actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * jämför sidans faktiska titel med den förväntade och skriv ut * resultatet som 'Godkänt' eller 'Misslyckades' * / if (actualTitle.contentEquals (expectedTitle)) {System.out.println ('Test Passed!')} else {System.out.println ('Test Failed')} // close 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
  • Innan vi kör projektet måste vi konvertera klassfilen DemoClass till en TestNG-fil. För att göra det högerklickar du på DemoClass -> TestNG -> Konvertera till TestNG.

  • Nu för att köra projektet, högerklicka på ett projekt -> Kör som -> Maven clean. Detta rensar projektet genom att ta bort alla tidigare byggnader.

  • Efter Maven clean måste du testa projektet eftersom vi har skrivit koden för att testa webbapplikationen. Så högerklicka på projekt -> Kör som -> Maven-test. Detta öppnar webbplatsen och matchar webbplatsens titel. Om det matchar kommer vårt testfall att klara.

  • Vi kan också utföra ovanstående kommandon med en kommandotolk. För det behöver vi sökvägen till filen pom.xml.

    • Du kan få sökvägen genom att högerklicka på pom.xml-filen -> Egenskaper -> Plats.
    • Kopiera sökvägen, öppna sedan en kommandotolk och klistra in den där med cd. cd C: / Användare / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • När du har gjort detta kan du igen skriva Maven-kommandon som mvn clean och mvn test.

Så det här är det från min sida i den här bloggen på Maven tutorial. Jag hoppas att du har förstått de saker som vi har diskuterat i denna Maven-handledning.

Nu när du har förstått denna Maven-handledning, kolla in det här av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka DevOps Certification Training-kursen hjälper eleverna att förstå vad som är DevOps och få expertis inom olika DevOps-processer och verktyg som Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack och GIT för att automatisera flera steg i SDLC.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna Maven-handledning så återkommer vi till dig