Maven-zelfstudie: alles wat u moet weten om aan de slag te gaan

Deze blog over Maven-tutorial behandelt alles wat je moet weten om aan de slag te gaan met Maven voor het bouwen van je projecten.

In plaats van lange scripts te schrijven voor het bouwen van uw projecten en het handmatig downloaden van de afhankelijkheden, kunt u Maven gebruiken en deze puinhoop verwijderen. Deze blog over Maven-tutorial behandelt alles wat je nodig hebt om aan de slag te gaan met het gebruik van Maven voor je project. Na deze Maven-tutorial grondig te hebben begrepen, is de volgende waarschijnlijke stap het leren van Jenkins, dat de continue integratiefase van .

In deze blog over Maven-tutorial behandelen we de volgende onderwerpen:

  1. Waarom hebben we Maven nodig?
  2. Wat is Maven?
  3. Maven-architectuur
  4. Maven levenscyclus, fasen en doelen
  5. Demoproject.

Waarom hebben we Maven nodig?

Als je aan Java-projecten werkt, heb je meestal afhankelijkheden nodig. Afhankelijkheden zijn niets anders dan bibliotheken of JAR-bestanden. U moet ze handmatig downloaden en toevoegen. Ook werd de taak van het upgraden van de softwarestack voor uw project handmatig gedaan vóór Maven. Er was dus behoefte aan een beter ontwikkelde tool die dergelijke problemen zou oplossen.



Dit is waar Maven in beeld komt. Maven kan al uw problemen met afhankelijkheden oplossen. U hoeft alleen de afhankelijkheden en de gewenste softwareversie op te geven in het pom.xml-bestand in Maven en Maven zorgt voor de rest.Dus laten we nu proberen te begrijpen wat Maven precies is.

Wat is Maven?

Het Maven-project is ontwikkeld door Apache Software Foundation, waar het vroeger deel uitmaakte van het Jakarta-project. Maven is een krachtige build-automatiseringstool die voornamelijk wordt gebruikt voor op Java gebaseerde projecten. Maven helpt u twee kritieke aspecten van het bouwen van software aan te pakken:

  • Het beschrijft hoe software wordt gebouwd
  • Het beschrijft de afhankelijkheden.

Maven geeft de voorkeur aan conventie boven configuratie. Maven downloadt dynamisch Java-bibliotheken en Maven-plug-ins van een of meer opslagplaatsen, zoals de Maven Central Repository, en slaat ze op in een lokale cache. De artefacten van de lokale projecten kunnen ook worden bijgewerkt met deze lokale cache. Maven kan u ook helpen bij het bouwen en beheren van projecten die zijn geschreven in C #, Ruby, Scala en andere talen.

gegevensstructuur en algoritme in java

Project Object Model (POM) -bestand is een XML-bestand dat informatie bevat met betrekking tot het project en configuratie-informatie zoals afhankelijkheden, brondirectory, plug-in, doelen, enz. Gebruikt door Maven om het project te bouwen. Als je een maven-commando uitvoert, geef je maven een POM-bestand om de commando's uit te voeren. Maven leest het pom.xml-bestand om de configuratie en bewerkingen uit te voeren.

Maven-doelstellingen

Maven-doelstellingen

Wanneer moet iemand Maven gebruiken?

    1. Als er te veel afhankelijkheden zijn voor het project.
    2. Wanneer de afhankelijkheidsversie regelmatig wordt bijgewerkt.
    3. Continue builds, integratie en testen kunnen eenvoudig worden afgehandeld met behulp van maven.
    4. Wanneer men een gemakkelijke manier nodig heeft om documentatie van de broncode te genereren, de broncode te compileren, gecompileerde code in JAR-bestanden of ZIP-bestanden te verpakken.

Maven-architectuur

Maven levenscyclus, fasen en doelen

1. Maven levenscyclus

Er is een specifieke levenscyclus die Maven volgt om het doelproject in te zetten en te distribueren.

Er zijn drie ingebouwde levenscycli:

  • standaard - Dit is de belangrijkste levenscyclus van Maven, aangezien het verantwoordelijk is voor de implementatie van projecten.
  • schoon - Deze levenscyclus wordt gebruikt om het project op te schonen en alle bestanden te verwijderen die door de vorige build zijn gegenereerd.
  • site - Het doel van deze levenscyclus is om de site-documentatie van het project te maken.

Elke levenscyclus bestaat uit een opeenvolging van fasen. De standaard build-levenscyclus bestaat uit 23 fasen, aangezien dit de belangrijkste build-levenscyclus van Maven is

Aan de andere kant bestaat de schone levenscyclus uit 3 fasen, terwijl de levenscyclus van de site uit 4 fasen bestaat.

2. Maven-fasen

Een Maven-fase is niets anders dan een fase in de levenscyclus van de Maven-build. Elke fase voert een specifieke taak uit.

Hier zijn een paar belangrijke fasen in de standaard build-levenscyclus:

  • valideren - In deze fase wordt gecontroleerd of alle informatie die nodig is voor de build beschikbaar is
  • compileren - Deze fase compileert de broncode
  • test-compileren - Deze fase compileert de testbroncode
  • test - In deze fase worden unit-tests uitgevoerd
  • pakket - Deze fase verpakt de gecompileerde broncode in het distribueerbare formaat (jar, war)
  • integratietest - Deze fase verwerkt en implementeert het pakket indien nodig om integratietests uit te voeren
  • installeren - Deze fase installeert het pakket op een lokale repository
  • inzetten - Deze fase kopieert het pakket naar de externe repository

Maven voert fasen uit in een specifieke volgorde. Dit betekent dat als we een specifieke fase uitvoeren met het commando zoals mvn, dit niet alleen de gespecificeerde fase zal uitvoeren, maar ook alle voorgaande fasen.

Als u bijvoorbeeld de opdracht mvn deploy uitvoert, dat wil zeggen de implementatiefase die de laatste fase is in de standaard buildlevenscyclus, dan worden alle fasen voorafgaand aan de implementatiefase ook uitgevoerd.

3. Maven-doelen

Een reeks doelen vormt een fase en elk doel voert een specifieke taak uit. Als je een fase uitvoert, voert Maven alle doelen uit in een volgorde die aan die fase zijn gekoppeld. De gebruikte syntaxis is plugin: goal. Enkele van de fasen en de standaarddoelen die eraan zijn gebonden, zijn als volgt:

  • compiler: compileren - compileerfase
  • compiler: test - test-compileerfase
  • trefzeker: test - testfase
  • install: install - installatiefase
  • jar en oorlog: oorlog - pakketfase

Een Maven-plug-in is een groep doelen. Deze doelen zijn echter niet noodzakelijkerwijs allemaal gebonden aan dezelfde fase.Bijvoorbeeld de Maven Failsafe-plug-in die verantwoordelijk is voor het uitvoeren van integratietests. Voor het testen van eenheden heb je de trefzekere plug-in Maven nodig.

Demoproject

In dit gedeelte van het Maven tutorial bekijken we een demo-project. Om te demonstreren hoe je een project bouwt met Maven, heb ik een Java-project samen met TestNG met behulp van Eclipse IDE. Dit is een heel eenvoudig programma waarin ik code heb geschreven om de titel van een website te testen.

Het programma start automatisch een webbrowser, navigeert naar de website die in de code wordt genoemd, haalt de titel van die webpagina op en vergelijkt deze met de verwachte titel. Als de daadwerkelijke titel en de verwachte titel overeenkomen, slaagt de testcase anders mislukt het.

Dus voor dit project heb je nodig , Maven en Eclipse gedownload op uw systeem. De versies die ik op mijn systeem gebruik, zijn als volgt -

  1. Verduistering - Enterprise Edition versie 4.12.0 (2019-06)
  2. Java - versie 1.8.0_211
  3. Maven - versie 3.6.1
  • Afgezien hiervan moet u de TestNG-plug-in voor Eclipse downloaden en u kunt deze downloaden met behulp van de volgende stappen -
    • Open Eclipse en ga naar Help. Klik in Help op de Eclipse-marktplaats.
    • Typ TestNG in het vak Zoeken en klik op Go. In de resultaten ziet u 'TestNG for Eclipse'. U moet het downloaden.
  • Nadat je je systeem hebt opgezet met de bovengenoemde dingen, ben je helemaal klaar om een ​​demoproject te maken met Maven. Dus nu ga ik je alle stappen vertellen die nodig zijn om dit te doen.
    • Klik in Eclipse op Bestand -> Nieuw -> Maven-project.
    • Klik op Een eenvoudig project maken (archetypeselectie overslaan) en klik vervolgens op volgende.
  • Nu zie je een venster met parameters zoals groeps-id, artefact-id enzovoort.
    • Groeps-id is de unieke id van een groep die eigenaar is van het project.
    • Artefact-id is de naam van de uiteindelijke compilatie-eenheid.
    • Versie is de versie van het gemaakte artefact. SNAPSHOT geeft aan dat er wordt gewerkt.
    • Afhankelijk van uw project kan de verpakking jar, war of pom zijn. Voor ons project zullen we pot selecteren. Geef vervolgens de naam van uw project.

  • Zodra u het project heeft gemaakt, ziet u de projectstructuur van uw Maven-project. Hier kun je de volgende dingen zien -
    • pom.xml
    • src en target
    • src / main / java
    • src / test / java
    • Maven-afhankelijkheden
  • Maak nu een klassenbestand in src / main / test en noem het DemoClass. Deze klasse bevat de Selenium-code die we gebruiken om te testen. Nu hebben we Selenium, TestNG-afhankelijkheden en Maven-compiler en Surefire-plug-in toegevoegd aan het pom.xml-bestand. De code voor DemoClass en pom.xml wordt hieronder gegeven:
pakket maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test openbare klasse DemoClass {@Test openbare ongeldige test () gooit InterruptedException {// declaratie en instantiatie van objecten / variabelen //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver-stuurprogramma = nieuwe FirefoxDriver () // becommentarieer de bovenstaande 2 regels en verwijder de opmerking hieronder 2 regels om Chrome System.setProperty te gebruiken ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver-stuurprogramma = nieuwe ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String verwachteTitle = 'Welcome: Mercury Tours' String actualTitle = '' // start Fire fox en stuur het naar de basis-URL driver.get (baseUrl) // verkrijg de werkelijke waarde van de titel actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * vergelijk de werkelijke titel van de pagina met de verwachte en druk * het resultaat af als 'geslaagd' of 'mislukt' * / if (actualTitle.contentEquals (verwachteTitle)) {System.out.println ('Test geslaagd!')} anders {System.out.println ('Test mislukt')} // sluit 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 selenium-java 3.141.59 org.testng testng 6.14.3 test
  • Voordat we het project uitvoeren, moeten we het klassenbestand DemoClass converteren naar een TestNG-bestand. Klik hiervoor met de rechtermuisknop op DemoClass -> TestNG -> Converteren naar TestNG.

  • Om het project uit te voeren, klikt u met de rechtermuisknop op een project -> Uitvoeren als -> Maven clean. Dit zal het project wissen door alle vorige builds te verwijderen.

  • Nadat Maven is schoongemaakt, moet u het project testen, aangezien we de code hebben geschreven voor het testen van de webapplicatie. Dus klik met de rechtermuisknop op project -> Uitvoeren als -> Maven-test. Dit opent de website en komt overeen met de titel van de website. Als het overeenkomt, zal onze testcase slagen.

  • We kunnen de bovenstaande opdrachten ook uitvoeren met een opdrachtprompt. Daarvoor hebben we het pad van het pom.xml-bestand nodig.

    • U kunt het pad vinden door met de rechtermuisknop op het bestand pom.xml -> Eigenschappen -> Locatie te klikken.
    • Kopieer het pad, open vervolgens een opdrachtprompt en plak het daar met cd. cd C: / Users / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Zodra u dit doet, kunt u opnieuw Maven-opdrachten typen, zoals mvn clean en mvn test.

Dus dit is het van mijn kant in deze blog over Maven tutorial. Ik hoop dat je de dingen die we in deze Maven-tutorial hebben besproken, hebt begrepen.

Nu je deze Maven-tutorial hebt begrepen, kun je dit eens bekijken door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen te begrijpen wat DevOps is en expertise op te doen in verschillende DevOps-processen en -tools zoals Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack en GIT voor het automatiseren van meerdere stappen in SDLC.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze Maven-tutorial en we nemen contact met u op