gradle vs maven maven plugins
Aquest tutorial discutirà les diferències entre Gradle i Maven. També aprendreu sobre diversos connectors i configuracions de Maven:
Igual que Maven, Gradle és una eina d'automatització que utilitzen els desenvolupadors de Java per a una compilació. Gradle és una eina de codi obert que utilitza un llenguatge específic del domini i que es desenvolupa a Groovy.
=> Consulteu aquí la guia de formació Perfect Maven.
Què aprendreu:
Gradle Vs Maven
A continuació es detallen les diferències clau entre Gradle i Maven:
Gradle | Maven |
---|---|
En termes de rendiment, Gradle és millor, ja que només tracta de la tasca actual en execució i no de l'entrada o sortida que es proporciona. | Maven no utilitza els artefactes de compilació ni la memòria cau anteriors per crear el projecte, de manera que el temps necessari per generar un projecte nou és més gran. |
És un sistema de compilació d'automatització que es desenvolupa a Groovy | És una eina de construcció i gestió de projectes. |
Gradle no està dirigit per cap fitxer XML per a la construcció del projecte, sinó que utilitza el llenguatge Groovy, que és específic del domini. La informació del projecte es guarda a l'eina Gradle. | Maven està impulsat per un fitxer XML que conté informació sobre dependències, connectors i perfils, etc. |
Gradle funciona de manera incremental i proporciona una construcció més ràpida. | Maven no adopta un enfocament incremental i és més lent en termes de temps de construcció que Gradle. |
L'escriptura Gradle és senzilla, no és llarga i es pot entendre fàcilment. | Maven té el fitxer XML que és descriptiu, llarg i no es pot entendre fàcilment. |
Gradle es pot personalitzar fàcilment, ja que té moltes flexibilitats pel que fa al gran nombre d'opcions disponibles a l'eina amb el suport IDE. | La personalització de Maven no és fàcil i, de vegades, no és possible, ja que no té suport IDE. |
L’objectiu d’una eina Gradle és tenir noves funcions en el projecte. | L’objectiu d’una eina Maven és acabar un projecte en un temps fixat. |
A Gradle, la compilació de Java no és un pas obligatori. | A Maven, la compilació és un pas obligatori. |
Gradle és una eina relativament moderna i els seus usuaris són limitats en nombre. | Maven és una eina familiar i popular entre els desenvolupadors de Java. |
Es poden afegir nombroses dependències per al projecte a Gradle sense utilitzar xml. | Es poden afegir nombroses dependències al projecte afegint-les al fitxer xml (pom), cosa que fa que sigui més complex i difícil de gestionar que Gradle. |
El fitxer Build.gradle conté elements com a grup, baseName i versió. | El fitxer Pom.xml conté elements com, i. |
Poques diferències més entre Maven i Gradle
Gradle es basa en un grup de tasques que cal realitzar. Mentre que Maven té un model de fases constant i precís. Els objectius de Maven estan vinculats a les fases del projecte i cada objectiu és similar a les tasques de Gradle.
Rendiment
Pel que fa al rendiment, tant Gradle com Maven poden executar més d’una versió en diferents mòduls en paral·lel.
Tanmateix, Gradle segueix un enfocament de construcció incremental i verifica si les tasques es modifiquen o no i tracta només els fitxers que s’actualitzen.
Gradle té un millor rendiment a causa de les funcions que s'enumeren a continuació:
- Recopilació de classes Java de forma incremental.
- Reutilitzant els artefactes de construcció d'altres versions de Gradle amb entrades similars.
- Més ús de les API.
- Compilació més ràpida amb l'ajut del dimoni del compilador.
La gestió de memòria cau de compilació fa que Gradle sigui molt més ràpid que Maven.
Flexibilitat
Gradle és utilitzat per Google com a eina de compilació per a Android, ja que està dissenyat de manera que es pugui ampliar amb les metodologies més bàsiques. El model de Gradle es pot utilitzar per al desenvolupament de C o C ++ i es pot estendre a qualsevol altre entorn.
Maven no es pot personalitzar fàcilment i sovint no és factible. Això fa que sigui més fàcil comprendre les versions de Maven si no hem de fer front a cap requisit complex o exclusiu. No obstant això, Gradle es pot personalitzar fàcilment per utilitzar-lo.
Gradle ofereix una interessant interfície d’usuari web interactiva per a tasques de codificació, depuració i optimització de compilació a l’escaneig de compilació. Proporciona informació important sobre les tendències, la història i altres paràmetres de la compilació.
Gestió de la dependència
Gradle té millors implementacions d’APIs i dependències que Maven. A més, permet la memòria cau coincident. Això significa que diversos projectes poden utilitzar la memòria cau comuna sense que se sobreescriguin. Gradle té suma de comprovació i sincronitza memòries cau junt amb els dipòsits.
Té algunes de les característiques de gestió de dependències com:
- Normes de substitució de biblioteques compatibles.
- Regles substituïdes.
- Restaureu les dependències del projecte amb altres externes i viceversa.
Tant Gradle com Maven tenen dependències dinàmiques i transitives. Maven té els dipòsits Local, Central i Remote mentre Gradle té JCenter. A més, hi ha repositoris personalitzats interns de les organitzacions.
Exemples de codificació de 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
Per tal d'executar un objectiu Maven que generi un fitxer jar, s'utilitza l'ordre Maven següent:
Preguntes i respostes de l'entrevista mysql per a una experiència de 3 anys
mvn package
Així veiem que el fitxer pom.xml és descriptiu i que els projectes Maven amb diverses tasques, configuracions i dependències tindran un llarg fitxer xml.
A continuació es dóna el corresponent codi build.gradle que realitza el mateix resultat:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Així veiem que l’escriptura Gradle és més curta en comparació amb Maven. L'ordre següent s'utilitza per executar un grup de tasques.
gradle tasks –all
Veiem que Gradle és més capaç que Maven. Però pot haver-hi ocasions en què no necessitem totes aquestes funcionalitats addicionals de Gradle. Per tant, Maven és més adequat per a projectes petits, mentre que Gradle s’utilitza principalment en projectes més grans.
Ordres bàsics de Gradle Vs Maven
A la taula següent es detallen algunes ordres bàsiques de Gradle contra Maven:
Propòsit | Ordre Gradle | Ordre Maven |
---|---|---|
infal·lible | Les proves Junit s’executen en un carregador de classes aïllat. | |
Per generar WAR / EAR / JAR | gradle ensamblar | paquet mvn |
Per executar i compilar | prova de graduació | prova mvn |
Esborra el directori de compilació | gradle net | mvn net |
Integrar-se amb Eclipse | eclipsi gradle | mvn eclipse: eclipsi |
Per a la instal·lació | instal·lar gradle | mvn install |
Per obtenir la versió | gradle -versió | mvn -versió |
Podem convertir Gradle a Maven i al revés.
Podem seguir els passos següents per canviar Maven a Gradle:
# 1) Aneu a la carpeta del projecte Maven (ubicació del fitxer pom.xml).
# 2) Executeu l'ordre gradle init.
Això resultarà en generar una compilació de Gradle simultàniament settings.gradle arxiu i build.gradle es crearan fitxers.
Per canviar Gradle per Maven, seguiu els passos següents per:
# 1) build.gradle ha de tenir el connector Maven.
# 2) build.gradle ha de tenir el següent bloc de codi:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) A continuació, executeu instal·lar gradle.
Això provocarà la generació de fitxers pom-default.xml dins de la subcarpeta pom.
Configuració de Maven
La informació de configuració de Maven per a ús i projectes construïts es manté als llocs següents:
- Variable ambiental MAVEN_OPTs : Conté la informació necessària per iniciar la màquina virtual de Java (JVM) i també subministra funcions addicionals, com ara que la configuració de memòria de la JVM es pot establir en un valor com -Xms256m -Xmx512m.
- Fitxer Settings.xml: Aquest fitxer resideix al directori USER_HOME / .m2. Aquest fitxer s'encarrega de la majoria de configuracions utilitzades en tots els projectes integrats a Maven.
- Carpeta .mvn: Aquesta carpeta troba un lloc al nivell superior del directori del projecte. Els fitxers jvm.config, maven.config i extensions.xml tenen informació sobre la configuració específica del projecte.
- Fitxer .mvn / extension.xml
- Fitxer .mvn / maven.config
- Fitxer .mvn / jvm.config
La configuració de Maven es realitza als nivells següents:
- Instal·lació: Això s’acomoda durant la instal·lació de Maven.
- Projecte: Aquesta és la que es manté al fitxer pom.xml.
- Usuari: Això està configurat per a un usuari específic.
La configuració del projecte s'aplica a tot el projecte, mentre que la resta de configuracions (instal·lació i usuari) s'apliquen a l'entorn on treballem. La configuració d'usuari i d'instal·lació no es pot afegir com a part de les dades del projecte compartit.
Configuració del dipòsit local
La ubicació del dipòsit local es pot canviar com a part de la configuració de l'usuari. Per defecte, la ubicació és el directori .m2. Això s’aconsegueix mitjançant el codi XML següent.
path to the directory
Configuració del servidor intermediari
La configuració del servidor intermediari es pot mantenir a la configuració.
Configuració de resolució d’artefactes paral·lels
Maven descarrega un màxim de 5 artefactes de diversos grups alhora.
Per descarregar dos artefactes, hem d’especificar l’ordre següent:
mvn -Dmaven.artifact.threads = 2 verificació
Configuració de desplegament i seguretat
La secció descriu els dipòsits que s'han de desplegar en un projecte específic. La informació com el nom d'usuari, la contrasenya i altres paràmetres de seguretat no es poden col·locar dins d'aquest projecte. Per proporcionar aquesta informació, hem d’afegir-les a mapes a l’identificador del dipòsit de desplegament dins del projecte.
Això s’aconsegueix mitjançant el codi XML següent.
testrepository test password
Configuracions de perfils
El dipòsit Maven es pot configurar per inserir-lo al perfil. A la vegada, pot haver-hi més d’un perfil. En funció del requisit, podem mantenir un perfil actiu per canviar a diversos entorns.
Altres configuracions opcionals
Per tenir una configuració específica de l'entorn que no sigui específica per a cada projecte, hem de configurar la configuració.
quins són els principals proveïdors de correu electrònic
Maven conté un fitxer de configuració que es troba al directori d’instal·lació o d’usuari. S'encarrega de la configuració d'alguns dels paràmetres ambientals tal i com es mostra a continuació:
- Nom d'usuari i contrasenya del servidor
- Ubicació del gestor del dipòsit
- Servidor proxy HTTP
Configuracions de seguretat
Fins a Maven 2.1.0+, tenim l’opció de xifrar les contrasenyes dins del fitxer de configuració. Però hem de construir una contrasenya mestra abans d’anar al xifratge.
Connectors Maven
Els connectors Maven són una part integral del framework Maven. Cada connector està assignat a una tasca particular.
Hi ha dos tipus de connectors com es mostra a continuació:
- Construeix connectors : S’executen en el moment de la compilació i s’han de descriure a l’etiqueta de compilació del fitxer pom.xml.
- Connectors d'informes : S'executen en el moment de la generació del lloc i s'han de descriure a l'etiqueta d'informes del fitxer pom.xml.
A la llista següent es mostren alguns dels connectors bàsics de Maven:
Connectors bàsics | Tasques realitzades |
---|---|
net | Neteja els artefactes després de la construcció. |
compilador | Es compila el codi font Java. |
desplegar | Els artefactes de construcció es desplegen al dipòsit remot. |
instal·lar | Els artefactes de construcció s’instal·len al dipòsit local. |
verificador | S’utilitza per a proves d’integració. |
recursos | El directori de sortida obté la còpia dels recursos per incloure’ls a Jar. |
lloc | Es genera el lloc actual del projecte. |
verificador | S'utilitza per provar integració i comprovar condicions específiques. |
A continuació s’enumeren alguns dels connectors Maven Reporting:
Connectors d'informes | Tasques realitzades |
pmd | Es genera un informe pmd. |
registre de canvis | Els canvis recents de SCM es generen en forma de llista. |
canvis | Es genera un informe sobre el seguiment de problemes. |
estil de control | Es genera un informe d'estil de control. |
Javadoc | Es genera el document Java per al projecte. |
informe infal·lible | Els resultats de les proves unitàries es generen en forma d'informe. |
linkcheck | Es genera l'informe Linkcheck per a la documentació del projecte. |
jxr | Es genera una referència creuada font. |
Secció de preguntes freqüents
P # 1) És Maven millor que Gradle?
Resposta: Gradle utilitza un enfocament incremental i d’evitació del treball. Gradle controla les tasques d'entrada i sortida i executa les que són necessàries. No obstant això, per a projectes més petits Maven encara és preferible, mentre que Gradle és adequat per a projectes més grans i complexos.
Q # 2) Per què Gradle és més ràpid que Maven?
Resposta: Gradle és molt més ràpid que Maven a causa dels enfocaments següents de Gradle.
- Ús del dimoni Gradle que manté llestos els detalls de la construcció a la memòria.
- Recopilació de manera incremental.
- Ús de build-cache que obté els artefactes de versions anteriors.
- Modelatge de dependències de manera eficient per Gradle amb l'ajuda del connector Java.
P # 3) Què és Maven Gradle?
Resposta: Gradle és una eina de construcció d'automatització que es desenvolupa sobre les característiques d'Apache Ant i Apache Maven. És de codi obert i funciona en un llenguatge relacionat amb el domini basat en Groovy. No està impulsat pel fitxer pom.xml tal com l’utilitza Maven per a les dependències i configuracions del projecte.
Q # 4) Per què es prefereix Maven?
Resposta:
Maven és preferible pels següents avantatges:
- Dipòsit central per a totes les dependències del projecte.
- Manté una estructura de carpetes comuna a les organitzacions.
- Es pot integrar amb eines de control de versions com Git i eines d'integració contínua com Jenkins.
- El procés de construcció es fa més senzill, fàcil i uniforme.
P # 5) Maven només és per a Java?
Resposta: Maven és una eina de gestió i construcció de projectes que s'utilitza generalment per a projectes Java. Tanmateix, es pot utilitzar per a projectes desenvolupats a Ruby, C #, Scala, etc.
Q # 6) Per què s'utilitza Maven a Eclipse?
Resposta: Eclipse IDE descarrega automàticament les dependències i configuracions dels dipòsits Maven. A més, la creació de nous projectes Maven, el suport a Maven Project i pom .xml existents es pot fer amb l'ajuda d'Eclipse.
Q # 7) Quin idioma és Gradle?
Resposta: Gradle proporciona un llenguatge relacionat amb el domini també anomenat DSL per a la compilació. Aquest llenguatge es pot obtenir a Groovy i Kotlin.
amb què obrir fitxers jar
Q # 8) Quins avantatges té Maven?
Maven té algunes dependències com la següent:
- Dipòsit central per a totes les dependències del projecte.
- Manté una estructura de carpetes comuna a les organitzacions.
- Es pot integrar amb eines de control de versions com Git i eines d'integració contínua com Jenkins.
- El procés de construcció es fa més senzill i senzill.
Conclusió
En aquest tutorial es van discutir conceptes com Gradle contra Maven, com convertir Gradle a Maven i viceversa, configuracions de Maven i connectors. També es van explorar algunes de les ordres bàsiques de Maven i Gradle.
Pel que fa als connectors Maven, hem parlat d'alguns dels connectors Maven d'informes i bàsics.
Com que Maven és un tema candent al mercat, és necessari desenvolupar una comprensió del tema i desenvolupar experiència en aquesta eina.
=> Llegiu la sèrie de formació Easy Maven.
Lectura recomanada
- Què és Maven: tutorial de Maven per a principiants
- Com es crea un projecte Gradle amb seleni
- Com utilitzar Gradle per construir, provar i desplegar projectes
- Script Gatling i crea un projecte Gatling mitjançant l'arquetip Maven
- Integració de Maven amb TestNg mitjançant el connector Maven Surefire
- Què són POM (Project Object Model) i pom.xml a Maven
- Configuració de Maven amb Eclipse Java IDE
- 31 Preguntes i respostes a les entrevistes més freqüents de Maven