Tutorial Maven: Tot el que heu de saber per començar

Aquest tutorial del bloc sobre Maven cobreix tot el que heu de saber per començar amb Maven per construir els vostres projectes.

En lloc d’escriure scripts llargs per construir els vostres projectes i descarregar manualment les dependències, per què no utilitzeu Maven i desfeu-vos d’aquest embolic. Aquest tutorial del bloc sobre Maven cobrirà tot el que necessiteu per començar a utilitzar Maven per al vostre projecte. Després d’entendre a fons aquest tutorial de Maven, el següent pas probable serà aprendre Jenkins que cobreix la fase d’integració contínua de .

En aquest tutorial del bloc sobre Maven, tractarem els temes següents:



  1. Per què necessitem Maven?
  2. Què és Maven?
  3. Maven Architecture
  4. Cicle de vida, fases i objectius de Maven
  5. Projecte de demostració.

Per què necessitem Maven?

Si esteu treballant en projectes Java, la major part del temps necessiteu dependències. Les dependències no són res més que biblioteques o fitxers JAR. Els heu de descarregar i afegir manualment. A més, la tasca d’actualitzar la pila de programari per al vostre projecte es va fer manualment abans de Maven. Per tant, calia una eina de compilació millor que tractés aquests problemes.



Aquí és on Maven entra en escena. Maven pot resoldre tots els problemes relacionats amb dependències. Només heu d’especificar les dependències i la versió del programari que vulgueu al fitxer pom.xml de Maven i Maven s’encarregarà de la resta.Per tant, ara intentem entendre què és exactament Maven.

taula dins d'una taula html

Què és Maven?

El projecte Maven és desenvolupat per Apache Software Foundation, on anteriorment formava part del projecte de Jakarta. Maven és una potent eina d'automatització de compilacions que s'utilitza principalment per a projectes basats en Java. Maven us ajuda a abordar dos aspectes crítics de la creació de programari:



  • Descriu com es crea el programari
  • Descriu les dependències.

Maven prefereix la convenció abans que la configuració. Maven descarrega dinàmicament les biblioteques Java i els connectors Maven des d’un o més dipòsits com ara el dipòsit central Maven i els emmagatzema en una memòria cau local. Els artefactes dels projectes locals també es poden actualitzar amb aquesta memòria cau local. Maven també us pot ajudar a construir i gestionar projectes escrits en C #, Ruby, Scala i altres idiomes.

El fitxer POM (Project Object Model) és un fitxer XML que conté informació relacionada amb el projecte i informació de configuració, com ara dependències, directori font, connector, objectius, etc. que Maven utilitza per construir el projecte. Quan executeu una ordre maven, doneu a maven un fitxer POM per executar-les. Maven llegeix el fitxer pom.xml per realitzar la seva configuració i operacions.

Objectius Maven

Objectius Maven

Quan algú hauria d’utilitzar Maven?

    1. Si hi ha massa dependències per al projecte.
    2. Quan la versió de dependència s'actualitza amb freqüència.
    3. Les versions contínues, la integració i les proves es poden gestionar fàcilment utilitzant maven.
    4. Quan es necessita una manera senzilla de generar documentació a partir del codi font, compilant el codi font, empaquetant el codi compilat en fitxers JAR o fitxers ZIP.

Maven Architecture

Cicle de vida, fases i objectius de Maven

1. Cicle vital de Maven



Hi ha un cicle de vida específic que Maven segueix per desplegar i distribuir el projecte objectiu.

Hi ha tres cicles de vida incorporats:

  • per defecte - Aquest és el principal cicle de vida de Maven, ja que és el responsable del desplegament del projecte.
  • net - Aquest cicle de vida s'utilitza per netejar el projecte i eliminar tots els fitxers generats per la compilació anterior.
  • lloc - L’objectiu d’aquest cicle de vida és crear la documentació del lloc del projecte.

Cada cicle de vida està format per una seqüència de fases. El cicle de vida de construcció predeterminat consta de 23 fases, ja que és el cicle de vida de construcció principal de Maven

D'altra banda, el cicle de vida net consta de 3 fases, mentre que el cicle de vida del lloc es compon de 4 fases.

2. Fases de Maven

Una fase de Maven no és res més que una etapa del cicle vital de la construcció de Maven. Cada fase executa una tasca específica.

A continuació, es detallen algunes fases importants del cicle de vida de la compilació per defecte:

  • validar - Aquesta fase comprova si està disponible tota la informació necessària per a la construcció
  • compilar - Aquesta fase compila el codi font
  • prova-compila - Aquesta fase compila el codi font de la prova
  • prova - Aquesta fase realitza proves unitàries
  • paquet - Aquesta fase empaqueta el codi font compilat al format distribuïble (jar, war)
  • prova d’integració - Aquesta fase processa i desplega el paquet si cal per executar proves d'integració
  • instal·lar - Aquesta fase instal·la el paquet en un dipòsit local
  • desplegar - Aquesta fase copia el paquet al dipòsit remot

Maven executa fases en un ordre específic. Això vol dir que si executem una fase específica mitjançant l'ordre com mvn, això no només executarà la fase especificada, sinó també totes les fases anteriors.

Per exemple, si executeu l'ordre mvn deploy, és a dir, la fase de desplegament que és l'última fase del cicle de vida de la compilació per defecte, també s'executaran totes les fases anteriors a la fase de desplegament.

3. Objectius Maven

Una seqüència d'objectius constitueix una fase i cada objectiu executa una tasca específica. Quan executeu una fase, Maven executa tots els objectius en un ordre associat a aquesta fase. La sintaxi utilitzada és plugin: objectiu. Algunes de les fases i els objectius predeterminats que s’hi vinculen són els següents:

  • compilador: compilació - fase de compilació
  • compilador: prova - fase de prova-compilació
  • surefire: prova - fase de prova
  • install: install - fase d'instal·lació
  • jar and war: war - fase de paquets

Un complement Maven és un grup d'objectius. Tot i això, aquests objectius no estan necessàriament lligats a la mateixa fase.Per exemple, el connector Maven Failsafe que s’encarrega d’executar proves d’integració. Per a les proves d’unitats, necessiteu un connector Maven surefire.

com crear un jframe

Projecte de demostració

En aquesta secció del Maven tutorial, veurem un projecte de demostració. Per demostrar com construir un projecte mitjançant Maven, he creat un fitxer Projecte Java juntament amb TestNG mitjançant Eclipse IDE. Aquest és un programa molt senzill on he escrit codi per provar el títol d’un lloc web.

és el mateix git i github

El programa iniciarà automàticament un navegador web, anirà al lloc web esmentat al codi, obtindrà el títol d’aquesta pàgina web i el compararà amb el títol esperat. Si el títol real i el títol esperat coincideixen, el cas de prova passa si no falla.

Per tant, per a aquest projecte necessiteu , Maven i Eclipse descarregats al vostre sistema. Les versions que faig servir al meu sistema són les següents:

  1. eclipsi - Enterprise Edition versió 4.12.0 (2019-06)
  2. Java - versió 1.8.0_211
  3. Maven - versió 3.6.1
  • A part d'això, heu de descarregar el connector TestNG per a Eclipse i el podeu descarregar seguint els passos següents:
    • Obriu Eclipse i aneu a Ajuda. A Ajuda, feu clic al mercat Eclipse.
    • Escriviu TestNG al quadre Cerca i feu clic a Vés. Als resultats, veureu 'TestNG for Eclipse'. Cal descarregar-lo.
  • Després de configurar el sistema amb les coses esmentades, ja esteu a punt per crear un projecte de demostració amb Maven. Així que ara us explicaré tots els passos necessaris per fer-ho.
    • A Eclipse, feu clic a Fitxer -> Nou -> Projecte Maven.
    • Feu clic a Crea un projecte senzill (ometeu la selecció de l’arquetip) i feu clic a següent.
  • Ara veureu una finestra amb paràmetres com ara Identificador de grup, Identificador d’artefacte, etc.
    • L’identificador de grup és l’identificador únic d’un grup propietari del projecte.
    • Artifact Id és el nom de la unitat de compilació final.
    • La versió és la versió de l’artefacte creat. Instantània indica el treball en curs.
    • L'envàs pot ser pot, guerra o pom segons el vostre projecte. Per al nostre projecte, seleccionarem jar. A continuació, doneu el nom del vostre projecte.

  • Un cop creeu el projecte, veureu l'estructura del projecte Maven. Aquí podeu veure les següents coses:
    • pom.xml
    • src i objectiu
    • src / main / java
    • src / test / java
    • Dependències de Maven
  • Ara creeu un fitxer de classe a src / main / test i anomeneu-lo DemoClass. Aquesta classe conté el codi Selenium que estem utilitzant per fer proves. Ara hem afegit dependències de Selenium, TestNG i el compilador Maven i el connector Surefire al fitxer pom.xml. A continuació es mostra el codi de DemoClass i pom.xml:
package 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 () llança InterruptedException {// declaració i instanciació d'objectes / variables //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver driver = new FirefoxDriver () // comenta les 2 línies anteriors i descomenta-les a sota de 2 línies per utilitzar Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver driver = new ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String expectedTitle = 'Welcome: Mercury Tours' String actualTitle = '// llançar Fire fox i dirigir-lo a l'URL base driver.get (baseUrl) // obtenir el valor real del títol actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * compareu el títol real de la pàgina amb el previst i imprimiu * el resultat com a 'Aprovat' o 'Fallit' * / if (actualTitle.contentEquals (expectedTitle)) {System.out.println ('Prova superada!')} else {System.out.println ('Prova fallida')} // tanca 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
  • Abans d'executar el projecte, hem de convertir el fitxer de classe DemoClass a un fitxer TestNG. Per fer-ho, feu clic amb el botó dret a DemoClass -> TestNG -> Converteix a TestNG.

  • Ara per executar el projecte, feu clic amb el botó dret a sobre un projecte -> Executa com -> Maven clean. Això esborrarà el projecte eliminant totes les versions anteriors.

  • Després de Maven clean, heu de provar el projecte, ja que hem escrit el codi per provar l'aplicació web. Per tant, feu clic amb el botó dret a projecte -> Executa com -> Prova Maven. Això obrirà el lloc web i coincidirà amb el títol del lloc web. Si coincideix, el nostre cas de prova passarà.

  • També podem executar les ordres anteriors mitjançant un símbol del sistema. Per a això, necessitem la ruta del fitxer pom.xml.

    • Podeu obtenir el camí fent clic amb el botó dret al fitxer pom.xml -> Propietats -> Ubicació.
    • Copieu el camí d'accés i obriu un símbol del sistema i enganxeu-lo amb CD. cd C: / Usuaris / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Un cop fet això, podeu tornar a escriure ordres Maven, com ara mvn clean i mvn test.

Així que això és tot del meu costat en aquest bloc sobre el tutorial de Maven. Espero que hagueu entès les coses que hem comentat en aquest tutorial de Maven.

Ara que ja heu entès aquest tutorial de Maven, consulteu-ho per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació en certificació Edureka DevOps ajuda els estudiants a entendre què és DevOps i obtenir experiència en diversos processos i eines DevOps com Puppet, Jenkins, Nagios, Ansible, Xef, Saltstack i GIT per automatitzar diversos passos en SDLC.

Tens alguna pregunta? Esmenta’l a la secció de comentaris d’aquest tutorial de Maven i et respondrem