gradle vs maven maven plugins
Acest tutorial va discuta diferențele dintre Gradle și Maven. De asemenea, veți afla despre diverse pluginuri și configurații Maven:
La fel ca Maven, Gradle este un instrument de automatizare folosit de dezvoltatorii Java pentru o construcție. Gradle este un instrument open-source și utilizează un limbaj specific domeniului și dezvoltat în Groovy.
=> Consultați aici Ghidul perfect de formare Maven.
Ce veți învăța:
Gradle Vs Maven
Diferențele cheie dintre Gradle și Maven sunt tabelate mai jos:
| Gradle | Maven |
|---|---|
| În ceea ce privește performanța, Gradle este mai bun, deoarece se ocupă doar de sarcina de rulare actuală și nu de intrarea sau ieșirea furnizată. | Maven nu folosește artefactele de construcție anterioare sau cache pentru crearea proiectului, astfel încât timpul necesar pentru generarea unui nou proiect este mai mare. |
| Este un sistem de construire a automatizării dezvoltat în Groovy | Este un instrument de construire și gestionare a proiectelor. |
| Gradle nu este condus de niciun fișier XML pentru construirea proiectului, ci folosește limbajul - Groovy, care este specific domeniului. Informațiile despre proiect sunt păstrate în instrumentul Gradle. | Maven este condus de un fișier XML care conține informații despre dependențe, pluginuri și profiluri și așa mai departe. |
| Gradle funcționează incremental și oferă o finalizare mai rapidă a construcției. | Maven nu adoptă o abordare incrementală și este mai lent în ceea ce privește timpii de construcție decât Gradle. |
| Scriptul Gradle este simplu, nu lung și poate fi înțeles cu ușurință. | Maven are fișierul xml care este descriptiv, lung și nu poate fi ușor de înțeles. |
| Gradle poate fi personalizat cu ușurință, deoarece are o mulțime de flexibilități în ceea ce privește numărul mare de opțiuni disponibile în instrument cu suportul IDE. | Personalizarea lui Maven nu este ușoară și uneori nu este posibilă, deoarece nu are suport IDE. |
| Scopul unui instrument Gradle este de a avea caracteristici noi în proiect. | Scopul unui instrument Maven este de a termina un proiect într-un timp fix. |
| În Gradle, compilarea Java nu este un pas obligatoriu. | În Maven, compilarea este un pas obligatoriu. |
| Gradle este un instrument relativ modern, iar utilizatorii săi sunt limitați în număr. | Maven este un instrument familiar și popular printre dezvoltatorii Java. |
| Numeroase dependențe pentru proiect pot fi adăugate în Gradle fără utilizarea xml. | Numeroase dependențe pot fi adăugate la proiect prin adăugarea lor la fișierul xml (pom), făcându-l astfel mai complex și mai dificil de gestionat decât Gradle. |
| Fișierul Build.gradle conține elemente precum grup, numeNume și versiune. | Fișierul Pom.xml conține elemente precum și. |
Mai sunt câteva diferențe între Maven Vs Gradle
Gradle este construit dintr-un grup de sarcini care trebuie îndeplinite. În timp ce Maven are un model constant și precis de faze. Obiectivele Maven sunt legate de fazele proiectului și fiecare obiectiv este similar cu sarcinile Gradle.
Performanţă
În ceea ce privește performanța, atât Gradle cât și Maven pot rula mai multe construcții pe diferite module în paralel.
Cu toate acestea, Gradle urmează o abordare de construcție incrementală și verifică dacă sarcinile sunt modificate sau nu și se ocupă numai de fișierele care sunt actualizate.
Gradle are o performanță mai bună datorită caracteristicilor enumerate mai jos:
- Compilarea clasei Java într-un mod incremental.
- Reutilizarea artefactelor de construcție ale altor versiuni Gradle cu intrări similare.
- Utilizarea mai mult a API-urilor.
- Compilare mai rapidă cu ajutorul demonului compilatorului.
Gestionarea memoriei cache face Gradle mult mai rapid decât Maven.
Flexibilitate
Gradle este folosit de Google ca instrument de construcție pentru Android, deoarece este conceput în așa fel încât să poată fi extins cu cele mai de bază metodologii. Modelul lui Gradle poate fi utilizat pentru dezvoltarea C sau C ++ și poate fi extins la orice alt mediu.
Maven nu poate fi personalizat cu ușurință și nu este adesea fezabil. Acest lucru facilitează înțelegerea versiunilor Maven dacă nu trebuie să ne ocupăm de cerințe complexe sau exclusive. Cu toate acestea, Gradle este ușor de personalizat pentru utilizare.
Gradle oferă o interfață web interactivă interesantă pentru codificare, depanare și activități de optimizare a construirii în Build Scan. Oferă informații importante despre tendințe, istoric și alți parametri ai construcției.
Managementul dependenței
Gradle are API-uri și implementări de dependențe mai bune decât Maven. În plus, permite cache-uri coincidente. Aceasta înseamnă că mai multe proiecte pot utiliza cache-ul comun, fără a fi suprascrise unul de celălalt. Gradle are suma de verificare și sincronizează cache-urile împreună cu depozitele.
Are unele dintre caracteristicile managementului dependenței, cum ar fi:
- Reguli de substituire pentru biblioteci compatibile.
- Înlocuite de reguli.
- Restabiliți dependențele proiectului cu cele externe și invers.
Atât Gradle cât și Maven au dependențe dinamice și tranzitive. Maven are depozite locale, centrale și la distanță, în timp ce Gradle are JCenter. De asemenea, există depozite personalizate interne pentru organizații.
Exemple de codificare pentru Gradle și Maven
2.0.0 com.softwareTest Java-builds jar 2.0 j unit junit 2.10 org.apache.maven.plugins maven-surefire-plugin 2.2.1 Pentru a executa un obiectiv Maven care generează un fișier jar, se utilizează următoarea comandă Maven:
cum se deschide fișierul jar executabil
mvn package Astfel vedem că fișierul pom.xml este descriptiv, iar proiectele Maven cu sarcini multiple, configurații și dependențe vor avea un fișier XML lung.
Codul build.gradle corespunzător care efectuează același rezultat este dat mai jos:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }Astfel vedem că scriptul Gradle este mai scurt în comparație cu Maven. Comanda de mai jos este utilizată pentru a executa un grup de sarcini.
gradle tasks –all Vedem că Gradle este mai capabil decât Maven. Dar pot exista ocazii în care nu avem nevoie de toate aceste funcționalități suplimentare ale lui Gradle. Deci, Maven este mai potrivit pentru proiecte mici, în timp ce Gradle este utilizat în cea mai mare parte în proiecte mai mari.
Comenzile de bază Gradle Vs Maven
Următorul tabel listează câteva comenzi de bază ale lui Gradle vs Maven:
| Scop | Comanda Gradle | Comanda Maven |
|---|---|---|
| sigură | Testele Junit sunt executate într-un încărcător de clasă izolat. | |
| Pentru a genera RĂZBOI / EAR / JAR | gradle asambla | pachet mvn |
| Pentru a rula și a compila | test gradle | test mvn |
| Ștergeți directorul de construire | gradle curat | mvn curat |
| Integrarea cu Eclipse | eclipsa gradle | mvn eclipse: eclipse |
| Pentru instalare | instalare gradle | mvn instalare |
| Pentru a obține versiunea | gradle -versiune | mvn -versiune |
Putem converti Gradle în Maven și invers.
Putem urma pașii de mai jos pentru a schimba Maven în Gradle:
# 1) Navigați la folderul proiectului Maven (locația fișierului pom.xml).
#Două) Executați comanda gradle init.
Acest lucru va duce la generarea unei construcții Gradle simultan setări.gradare fișier și build.gradle vor fi create fișiere.
Pentru a schimba Gradle în Maven, urmăm pașii de mai jos în ordine:
# 1) build.gradle fișierul ar trebui să aibă pluginul Maven.
# 2) build.gradle fișierul ar trebui să aibă următorul bloc de cod:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }# 3) Apoi executați instalare gradle.
Acest lucru va duce la generarea de fișiere pom-default.xml în subfolderul pom.
Configurarea Maven
Informațiile de configurare Maven pentru utilizare și proiectele construite rămân în următoarele locuri:
- Variabila de mediu MAVEN_OPTs : Conține informațiile necesare pentru pornirea mașinii virtuale Java (JVM) și furnizează, de asemenea, caracteristici suplimentare, cum ar fi setările de memorie ale JVM pot fi setate la o valoare ca -Xms256m -Xmx512m.
- Fișierul Settings.xml: Acest fișier se află în directorul USER_HOME / .m2. Acest fișier are grijă de majoritatea configurațiilor utilizate în toate proiectele construite în Maven.
- folderul .mvn: Acest folder găsește un loc la nivelul superior al directorului proiectului. Fișierele jvm.config, maven.config și extensions.xml au informații despre configurația specifică proiectului.
- fișierul .mvn / extension.xml
- fișier .mvn / maven.config
- fișier .mvn / jvm.config
Configurarea Maven se face la nivelurile enumerate mai jos:
- Instalare: Acest lucru este adaptat în timpul instalării Maven.
- Proiect: Acesta este cel static menținut în fișierul pom.xml.
- Utilizator: Aceasta este configurată pentru un anumit utilizator.
Configurarea proiectului se aplică întregului proiect, în timp ce celelalte configurații (instalare și utilizator) sunt aplicate mediului în care lucrăm. Configurările de instalare și de utilizator nu pot fi adăugate ca parte a datelor partajate ale proiectului.
Configurare depozit local
Locația depozitului local poate fi modificată ca parte a configurației utilizatorului. În mod implicit, locația este directorul .m2. Acest lucru se realizează prin codul XML de mai jos.
path to the directory Configurare proxy
Configurația proxy poate fi menținută în setări.
Configurare rezoluție artefact paralel
Maven descarcă maximum 5 artefacte dintr-o serie de grupuri dintr-o dată.
Pentru a descărca două artefacte, trebuie să specificăm următoarea comandă:
mvn -Dmaven.artifact.threads = 2 verificare
Configurare de implementare și securitate
secțiunea descrie depozitele care urmează să fie implementate într-un anumit proiect. Informații precum numele de utilizator, parola și alți parametri de securitate nu pot fi plasate în acel proiect. Pentru a furniza aceste informații, trebuie să le adăugăm în mapat la ID-ul depozitului de implementare din cadrul proiectului.
Acest lucru se realizează prin codul XML de mai jos.
testrepository test password Configurări profiluri
Depozitul Maven poate fi configurat pentru a fi introdus în profil. La un moment dat, pot exista mai multe profiluri. În funcție de cerință, putem păstra un profil activ, astfel încât să putem trece la diverse medii.
Alte configurații opționale
Pentru a avea o configurație specifică mediului care nu este specifică fiecărui proiect, trebuie să configurăm setările.
cum se vizualizează un fișier .dat
Maven conține un fișier de setări care este prezent în directorul de instalare sau de acasă al utilizatorului. Se ocupă de configurarea unora dintre parametrii de mediu, după cum se arată mai jos:
- Numele de utilizator și parola serverului
- Locația managerului depozitului
- Server proxy HTTP
Configurări de securitate
Până la Maven 2.1.0+, avem opțiunea de criptare a parolelor din fișierul de setări. Dar trebuie să construim o parolă principală înainte de a merge la criptare.
Pluginuri Maven
Pluginurile Maven fac parte integrantă din cadrul Maven. Fiecare plugin este alocat unei anumite sarcini.
Există două tipuri de pluginuri, așa cum se arată mai jos:
- Construiți pluginuri : Sunt executate la momentul construirii și trebuie descrise sub eticheta de construire din fișierul pom.xml.
- Pluginuri de raportare : Sunt executate la momentul generării site-ului și trebuie descrise sub eticheta de raportare din fișierul pom.xml.
Lista de mai jos prezintă câteva dintre pluginurile de bază Maven:
| Plugin-uri de bază | Sarcini efectuate |
|---|---|
| curat | Curăță artefactele după construire. |
| compilator | Este compilat codul sursă Java. |
| implementa | Artefactele de construcție sunt implementate în depozitul la distanță. |
| instalare | Artefactele de construcție sunt instalate în depozitul local. |
| verificator | Folosit pentru teste de integrare. |
| resurse | Directorul de ieșire primește copia resurselor pentru includerea în Jar. |
| site | Site-ul proiectului actual este generat. |
| verificator | Folosit pentru testarea integrării și verificarea condițiilor specifice. |
Unele dintre pluginurile Maven Reporting sunt enumerate mai jos:
| Pluginuri de raportare | Sarcini efectuate |
| pmd | Se generează un raport pmd. |
| jurnalul de schimbări | Modificările recente de la SCM sunt generate sub formă de listă. |
| schimbări | Este generat raportul privind urmărirea problemelor. |
| stil de control | Se generează raportul Stil de verificare. |
| Javadoc | Este generat documentul Java pentru proiect. |
| raport sigur | Rezultatele testelor unitare sunt generate sub formă de raport. |
| linkcheck | Se generează raportul Linkcheck pentru documentația proiectului. |
| jxr | Se generează o referință încrucișată sursă. |
Secțiunea FAQ
Q # 1) Este Maven mai bun decât Gradle?
Răspuns: Gradle folosește o abordare incrementală și de evitare a muncii. Gradle monitorizează sarcinile de intrare și ieșire și le execută pe cele necesare. Cu toate acestea, pentru proiecte mai mici, Maven este încă preferat, în timp ce Gradle este potrivit pentru proiecte mai mari și complexe.
Q # 2) De ce Gradle este mai rapid decât Maven?
Răspuns: Gradle este mult mai rapid decât Maven din cauza abordărilor de mai jos ale lui Gradle.
- Utilizarea Gradle Daemon care păstrează detaliile clădirii în memorie.
- Compilare în mod incremental.
- Utilizarea build-cache-ului care obține artefactele din versiunile anterioare.
- Modelarea dependențelor într-un mod eficient de către Gradle cu ajutorul pluginului Java.
Î # 3) Ce este Maven Gradle?
Răspuns: Gradle este un instrument de construire a automatizării dezvoltat pe caracteristicile Apache Ant și Apache Maven. Este open-source și funcționează pe un limbaj legat de domeniul Groovy. Nu este condus de fișierul pom.xml așa cum este utilizat de Maven pentru dependențele și configurațiile proiectului.
Q # 4) De ce este preferat Maven?
Răspuns:
Maven este preferat din cauza următoarelor avantaje:
- Depozit central pentru toate dependențele proiectului.
- Menține o structură comună de foldere în cadrul organizațiilor.
- Poate fi integrat cu instrumente de control al versiunilor precum Git și instrument de integrare continuă precum Jenkins.
- Procesul de construcție se face mai simplu, ușor și uniform.
Q # 5) Maven este doar pentru Java?
Răspuns: Maven este un instrument de management și construire a proiectelor utilizat în general pentru proiecte Java. Cu toate acestea, poate fi folosit pentru proiecte dezvoltate în Ruby, C #, Scala și așa mai departe.
Q # 6) De ce este folosit Maven în Eclipse?
Răspuns: Eclipse IDE descarcă automat dependențele și configurațiile din depozitele Maven. De asemenea, crearea de noi proiecte Maven, suportul pentru proiectul Maven existent și pom .xml se poate face cu ajutorul Eclipse.
Q # 7) Ce limbă este Gradle?
Răspuns: Gradle oferă un limbaj legat de domeniu, numit și DSL, pentru compilare. Acest limbaj poate fi obținut în Groovy și Kotlin.
cele mai populare sisteme de operare pentru computerele personale
Q # 8) Care sunt avantajele Maven?
Maven are unele dependențe precum următoarele:
- Depozit central pentru toate dependențele proiectului.
- Menține o structură comună de foldere în cadrul organizațiilor.
- Poate fi integrat cu instrumente de control al versiunilor precum Git și instrument de integrare continuă precum Jenkins.
- Procesul de construire este mai simplu și mai ușor.
Concluzie
Acest tutorial a discutat despre concepte precum Gradle vs Maven, cum se poate converti Gradle în Maven și viceversa, configurațiile Maven și pluginurile. De asemenea, au fost explorate unele dintre comenzile de bază de pe Maven și Gradle.
În ceea ce privește pluginurile Maven, am discutat despre unele dintre pluginurile Maven de raportare și de bază.
Maven fiind un subiect fierbinte pe piață, este necesar să se dezvolte o înțelegere a subiectului și să se dezvolte expertiza în acest instrument.
=> Citiți seria Easy Training Maven.
Lectură recomandată
- Ce este Maven - Tutorial Maven pentru începători
- Cum să creați un proiect Gradle cu seleniu
- Cum se folosește Gradle pentru a construi, testa și implementa proiecte
- Script Gatling și creați un proiect Gatling folosind arhetipul Maven
- Integrarea Maven cu TestNg folosind pluginul Maven Surefire
- Ce sunt POM (Project Object Model) și pom.xml în Maven
- Configurarea Maven cu Eclipse Java IDE
- 31 Cele mai frecvente întrebări și răspunsuri la interviu Maven