maven dependency integration with eclipse
In deze tutorial zullen we de integratie van Maven met Eclipse en TestNG, Maven Dependency Scope en Maven Deployment Automation in detail bespreken:
In de vorige tutorial hebben we de vergelijking tussen Gradle vs Maven en Maven Plugins besproken. In deze zelfstudie wordt uitgelegd hoe u Maven kunt integreren met andere tools, Maven-afhankelijkheid en Maven-implementatie.
voorbeelden van c ++ -programma's die functies gebruiken
Laten we beginnen!
Bezoek hier voor de exclusieve Maven Training Tutorial Series.
Wat je leert:
- Integratie van Maven met Eclipse
- Integratie van Maven met TestNG
- Maven afhankelijkheidsbereik
- Automatisering van Maven-implementatie
- Maven Release-plug-in
- Gevolgtrekking
- Aanbevolen literatuur
Integratie van Maven met Eclipse
Hoe je Maven kunt integreren met Eclipse is hierover al uitvoerig besproken bladzijde
In bepaalde scenario's waarin we een Maven-project bouwen vanaf de opdrachtprompt en we dat project naar Eclipse moeten brengen, moeten de volgende stappen worden uitgevoerd.
# 1) Navigeer naar de locatie van het pom-bestand voor het Maven-project. Voer de onderstaande opdracht uit.
mvn verduistering: verduistering
# 2) .klassenpad en .project wordt gemaakt op de locatie van het Maven-project.
Controleer of de Maven-plug-in al in de Eclipse van Windows => Voorkeuren , Maven zou daar aanwezig moeten zijn. Alle huidige Eclipse-versies hebben standaard de Maven-plug-ins en als deze er niet is, kunnen we deze ophalen hier
# 3) Om Maven en Eclipse nu samen te laten werken, importeert u het Maven-project uit het bestand. Selecteer vervolgens het Bestaand Maven-project.
# 4) Blader door de locatie van het project en ga verder.

De afbeelding hierboven toont het Maven-project dat is geïmporteerd in Eclipse.
Integratie van Maven met TestNG
Hoe je Maven kunt integreren met TestNG is uitgebreid besproken op de onderstaande pagina.
Integratie van Maven met TestNg met behulp van de Maven Surefire-plug-in
Hoewel we Maven met TestNG in ons project hebben geïntegreerd, kunnen er situaties zijn waarin ons project meer dan één Testng xml-bestand heeft. Bijvoorbeeld, de hele functies van de regressiesuite worden beschreven in het ene testng.xml en de sanity-testgevallen worden beschreven in het andere testng.xml-bestand.
In een situatie als deze moeten we de profiel concept in Maven. In het pom-bestand moeten we de profielen definiëren. Elk is een onderdeel van de tag en heeft een bijbehorende tag.
Een pom.xml-bestand met een profielcodefragment wordt hieronder gegeven:
Houd er rekening mee dat we hierboven twee profielen hebben, beschreven onder en aan elk profiel is een ID gekoppeld. Bijvoorbeeld, Regressie en Geestelijke gezondheid ook hebben we onder de suiteXmlFiles de naam gedefinieerd van het Testng xml-bestand dat overeenkomt met de id ( testngRegression.xml en testngSanity.xml
software om video's van you tube te downloaden
We hebben hier dus twee profielen en we kunnen elk Testng-bestand beheren met behulp van een enkel pom-bestand.
Om nu een testcase voor elk Testng-bestand rechtstreeks vanaf de opdrachtprompt te activeren, moeten we naar de projectmap gaan en de volgende opdracht uitvoeren.
Zodra dit is uitgevoerd, doorzoekt Maven het profiel met de id-regressie en het bijbehorende testngRegression.xml het dossier. Dus alleen de tests die daar betrokken zijn, worden uitgevoerd.
Evenzo is voor een profiel met id Sanity de opdracht:
Hier de testngSanity.xml bestand wordt gebruikt om de uit te voeren testgevallen te bepalen. Dus voor het activeren van een bepaalde set testgevallen hoeven we de TestNG-bestandsnaam in de pom niet te wijzigen, maar het kan eenvoudig worden bereikt door afzonderlijke TestNG-bestanden te onderhouden.
In het pom-bestand kunnen we deze bestanden in kaart brengen en ze uiteindelijk uitvoeren met behulp van profielen in Maven vanaf de opdrachtprompt.
Maven afhankelijkheidsbereik
Maven heeft in totaal zes scopes, zoals hieronder vermeld.
- Voorzien
- Test
- Systeem
- Importeren
- Compileren
- Looptijd
# 1) Runtime-bereik
Maven-afhankelijkheid heeft een bereik als de runtime en wordt niet gebruikt voor build-doeleinden. Het vormt een klassenpad voor het uitvoeren en testen van het project. Het onderstaande codefragment toont een afhankelijkheid van het runtime-bereik.
# 2) Systeembereik
Maven-afhankelijkheid met scope als een systeem heeft gelijkenis met de geboden scope. Systeemafhankelijkheden kunnen niet worden gedownload vanuit de externe repository en bevinden zich meestal in de mappen van het project. Het onderstaande codefragment toont een afhankelijkheid van het systeembereik.
# 3) Geleverd bereik
Maven-afhankelijkheid met een bereik zoals voorzien, is vereist voor het bouwen en testen van de projecten. Het wordt niet aanbevolen om deze afhankelijkheid te exporteren, aangezien ze beschikbaar zijn tijdens de runtime. Deze afhankelijkheid is echter vereist voor het uitvoeren van de build. Het onderstaande codefragment toont een opgegeven bereikafhankelijkheid.
# 4) Testbereik
Maven-afhankelijkheid die een bereik van de test heeft, is niet vereist voor het bouwen en uitvoeren van het project. Ze worden voornamelijk gebruikt voor het samenstellen en uitvoeren van de unit-testcases. Het onderstaande codefragment toont een testbereikafhankelijkheid.
# 5) Importbereik
In het pom-bestand staat het afhankelijkheidsbeheer sectie bevat de scope-import. Dit geeft de afhankelijkheid aan die moet worden gewijzigd met de effectieve groep afhankelijkheden die wordt geboden in de dependencyManagement-sectie van het pom-bestand. Het onderstaande codefragment toont een afhankelijkheid van het importbereik.
# 6) Scope compileren
Maven-afhankelijkheid met een compileerbereik is de standaardafhankelijkheid. Deze afhankelijkheid is essentieel voor het bouwen, testen en uitvoeren van het project. Dit is vooral belangrijk om Java-broncode met importinstructies op te lossen. Het onderstaande codefragment toont een afhankelijkheid van het compileerbereik.
Automatisering van Maven-implementatie
Projectimplementatie is een kritieke fase en omvat meerdere stappen, zoals hieronder beschreven:
- De code is ontwikkeld om in de repository te worden gecontroleerd.
- Broncode die moet worden gedownload vanuit de repository.
- Compilatie en het bouwen van de applicatie en het genereren van JAR- of WAR-bestanden.
- De geïdentificeerde JAR- of WAR-bestanden op een bekende netwerklocatie plaatsen.
- Laad de JAR- of WAR-bestanden.
- Implementeer de gedownloade JAR- of WAR-bestanden op de doelserver.
- Het nieuwe versienummer van de applicatie en de datum die moet worden bijgewerkt in de documentatie.
De bovengenoemde stappen worden gevolgd door elk lid van de teams die bij het project betrokken zijn. Als iemand wordt gemist of iets niet goed wordt gedaan, resulteert dit uit de bovenstaande stappen in mislukking van de bouw en implementatie Dus tussendoor, als er fouten zijn, moeten deze automatisch worden verholpen.
Maven volgt de implementatieautomatiseringsmethode om de implementatie automatisch en robuust te maken. Dit wordt bereikt door de combinatie van de onderstaande processen:
- Opbouw en vrijgave van het door Maven te verzorgen project.
- Broncode die moet worden beheerd door subversion en broncode-opslagplaats.
- Binaire bestanden projecteren om te zorgen voor de externe repositorymanager.
Het geautomatiseerde build- en releaseproces van Maven wordt verzorgd door de Maven Release-plug-in. Het pom.xml-bestand moet worden bijgewerkt zoals hieronder wordt weergegeven.
De onderstaande code is voor het com.softwaretestHelp-project pom.xml
De meest opvallende kenmerken in het bovenstaande pom.xml-bestand worden hieronder vermeld:
- SCM : De locatie van SVN (waar de broncode aanwezig is) wordt geconfigureerd door SCM.
- Opslagplaatsen : Dit is de locatie van de JAR-, WAR- of EAR-bestanden of enig ander projectartefact na de succesvolle voltooiing van het bouwen van het project.
- Inpluggen : Implementatie-automatisering uitgevoerd door de Maven-release-plug-in.
Maven Release-plug-in
Maven release plugin voert de volgende activiteiten uit:
- mvn release: schoon - Het reinigt de werkruimte van de vorige build vóór de komst van de toekomstige build.
- mvn release: rollback - In het geval van een mislukking van de vorige build, gaat het terug naar de werkruimte.
- mvn release: voorbereiden - Het controleert of er ongecommitteerde wijzigingen in bestanden zijn of niet. Controleert ook de afhankelijkheden van momentopnamen en werkt het versienummer van de applicatie bij. Het wijzigt de pom in SCM. Het zorgt voor de uitvoering van de testcase en legt de definitieve code vast aan SCM. Het voert het taggen van de code uit in de subversie. Ten slotte wordt het versienummer door deze plug-in verhoogd en aan de SNAPSHOT toegevoegd voor andere releases in de toekomst.
- mvn release: perform - Het controleert de code die aanwezig is in de repository en voert vervolgens Maven-builddoelen uit om het buildartefact in de repository te implementeren.
Ten slotte moeten we de onderstaande opdracht uitvoeren om het project te bouwen:
Zodra de succesvolle voltooiing van de build is voltooid, voert u de volgende opdracht uit:
Nu wordt het WAR-bestand geüpload naar de repository.
Gevolgtrekking
We hopen dat grote delen van Maven-integratie met Eclipse, de integratie met TestNG, Maven-profielen, afhankelijkheidsbereik van Maven en implementatie-automatisering van Maven nu begrijpelijk zullen zijn. Ook hebben we hier de meeste bereiken van de afhankelijkheden besproken.
Voor het implementatieproces van Maven hebben we alle stappen diepgaand onderzocht en enkele van de release-plug-ins van Maven uitgelegd. Lees de onderwerpen door en geleidelijk zult u de echte essentie van het gebruik van Maven in ons werk begrijpen.
top 10 webontwikkelingsbedrijven in India
We zullen doorgaan met de serie en kennis verzamelen over Maven Jenkins-integratie, Maven-interviewvragen, enz. In onze komende tutorials.
Bekijk hier ALLE Maven Tutorials.
Aanbevolen literatuur
- Wat is Maven - Maven-zelfstudie voor beginners
- Diepgaande Eclipse-zelfstudies voor beginners
- TestNG-zelfstudie: inleiding tot TestNG-framework
- Eclipse-zelfstudie: TestNG integreren in Eclipse Java IDE
- Maven configureren met Eclipse Java IDE
- Gradle versus Maven en Maven-plug-ins
- Maven met Jenkins & Maven-documentatie voor projecten
- Integratie van Maven met TestNg met behulp van de Maven Surefire-plug-in