gradle vs maven maven plugins
Ce tutoriel discutera des différences entre Gradle et Maven. Vous découvrirez également divers plugins et configurations Maven:
Comme Maven, Gradle est un outil d'automatisation utilisé par les développeurs Java pour une construction. Gradle est un outil open-source et utilise un langage spécifique au domaine et développé dans Groovy.
=> Consultez le guide de formation Perfect Maven ici.
Ce que vous apprendrez:
Gradle contre Maven
Les principales différences entre Gradle et Maven sont présentées sous forme de tableau ci-dessous:
Gradle | Maven |
---|---|
En termes de performances, Gradle est meilleur car il ne traite que de la tâche en cours d'exécution et non de l'entrée ou de la sortie fournie. | Maven n'utilise pas les artefacts de construction précédents ni le cache pour créer le projet, de sorte que le temps requis pour générer un nouveau projet est plus long. |
C'est un système de construction d'automatisation développé à Groovy | C'est un outil de gestion de build et de projet. |
Gradle n'est piloté par aucun fichier xml pour la construction du projet au lieu de cela, il utilise le langage Groovy qui est spécifique au domaine. Les informations du projet sont conservées dans l'outil Gradle. | Maven est géré par un fichier xml qui contient des informations sur les dépendances, les plugins et les profils, etc. |
Gradle fonctionne de manière incrémentielle et accélère la construction. | Maven n'adopte pas une approche incrémentielle et est plus lent en termes de temps de construction que Gradle. |
Le script Gradle est simple, peu long et peut être compris facilement. | Maven a le fichier xml qui est descriptif, long et difficile à comprendre. |
Gradle peut être personnalisé facilement car il a beaucoup de flexibilité en termes de grand nombre d'options disponibles dans l'outil avec le support IDE. | La personnalisation de Maven n’est pas facile et parfois impossible car il ne prend pas en charge IDE. |
Le but d'un outil Gradle est d'avoir de nouvelles fonctionnalités dans le projet. | Le but d'un outil Maven est de terminer un projet dans un temps fixe. |
Dans Gradle, la compilation Java n'est pas une étape obligatoire. | Dans Maven, la compilation est une étape obligatoire. |
Gradle est un outil relativement moderne et ses utilisateurs sont limités en nombre. | Maven est un outil familier et populaire parmi les développeurs Java. |
De nombreuses dépendances pour le projet peuvent être ajoutées dans Gradle sans l'utilisation de xml. | De nombreuses dépendances peuvent être ajoutées au projet en les ajoutant au fichier xml (pom), ce qui le rend plus complexe et difficile à gérer que Gradle. |
Le fichier Build.gradle contient les éléments tels que group, baseName et version. | Le fichier Pom.xml contient les éléments tels que, et. |
Peu de différences supplémentaires entre Maven Vs Gradle
Gradle est constitué d'un groupe de tâches qui doivent être effectuées. Alors que Maven a un modèle de phases constant et précis. Les objectifs Maven sont liés aux phases du projet et chaque objectif est similaire aux tâches Gradle.
Performance
En ce qui concerne les performances, Gradle et Maven peuvent exécuter plusieurs builds sur différents modules en parallèle.
Cependant, Gradle suit une approche de construction incrémentielle et vérifie si les tâches sont modifiées ou non et ne traite que les fichiers qui sont mis à jour.
Gradle a de meilleures performances en raison des fonctionnalités répertoriées ci-dessous:
- Compilation de classes Java de manière incrémentielle.
- Réutilisation des artefacts de build d'autres builds Gradle avec des entrées similaires.
- Plus d'utilisation des API.
- Compilation plus rapide avec l'aide du démon du compilateur.
La gestion du cache de construction rend Gradle beaucoup plus rapide que Maven.
Souplesse
Gradle est utilisé par Google comme outil de création pour Android car il est conçu de manière à pouvoir être étendu avec les méthodologies les plus élémentaires. Le modèle de Gradle peut être utilisé pour le développement de C ou C ++ et peut être étendu à tout autre environnement.
Maven ne peut pas être facilement personnalisé et n'est pas souvent réalisable. Cela facilite la compréhension des versions de Maven si nous n'avons pas à faire face à des exigences complexes ou exclusives. Cependant, Gradle est facilement personnalisable pour une utilisation.
Gradle propose une interface utilisateur Web interactive intéressante pour le codage, le débogage et les tâches d'optimisation de construction dans l'analyse de construction. Il fournit des informations importantes sur les tendances, l'historique et d'autres paramètres de la construction.
Gestion des dépendances
Gradle a une meilleure implémentation d'API et de dépendances que Maven. En outre, il permet des caches coïncidents. Cela signifie que plusieurs projets peuvent utiliser le cache commun sans être écrasés les uns par les autres. Gradle a la somme de contrôle et synchronise les caches avec les référentiels.
Il présente certaines des caractéristiques de gestion des dépendances telles que:
- Règles de substitution pour les bibliothèques compatibles.
- ReplacedBy règles.
- Restaurez les dépendances du projet avec des externes et vice versa.
Gradle et Maven ont tous deux des dépendances dynamiques et transitives. Maven a les référentiels Local, Central et Remote tandis que Gradle a JCenter. En outre, il existe des référentiels personnalisés internes aux organisations.
Exemples de codage de Gradle et 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
Afin d'exécuter un objectif Maven qui génère un fichier jar, la commande Maven suivante est utilisée:
applications pour convertir des vidéos youtube en mp3
mvn package
Ainsi, nous voyons que le fichier pom.xml est descriptif et que les projets Maven avec plusieurs tâches, configurations et dépendances auront un long fichier xml.
Le code build.gradle correspondant effectuant le même résultat est donné ci-dessous:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Ainsi, nous voyons que le script Gradle est plus court par rapport à Maven. La commande ci-dessous est utilisée pour exécuter un groupe de tâches.
gradle tasks –all
Nous voyons que Gradle est plus capable que Maven. Mais il peut arriver que nous n'ayons pas besoin de toutes ces fonctionnalités supplémentaires de Gradle. Maven est donc plus adapté aux petits projets tandis que Gradle est principalement utilisé dans les grands projets.
Commandes de base Gradle Vs Maven
Le tableau suivant répertorie quelques commandes de base de Gradle vs Maven:
But | Commande Gradle | Commande Maven |
---|---|---|
infaillible | Les tests Junit sont exécutés dans un chargeur de classe isolé. | |
Pour générer WAR / EAR / JAR | assembler gradle | paquet mvn |
Pour exécuter et compiler | test gradle | test mvn |
Supprimer le répertoire de build | gradle propre | mvn nettoyer |
Intégrer avec Eclipse | éclipse de gradle | mvn eclipse: éclipse |
Pour l'installation | installer gradle | mvn installer |
Pour obtenir la version | gradle -version | mvn -version |
Nous pouvons convertir Gradle en Maven et inversement.
Nous pouvons suivre les étapes ci-dessous pour changer Maven en Gradle:
#1) Accédez au dossier du projet Maven (emplacement du fichier pom.xml).
#deux) Exécutez la commande gradle init.
Cela entraînera la génération d'un build Gradle simultanément settings.gradle fichier et build.gradle les fichiers seront créés.
Pour changer Gradle en Maven, nous suivons les étapes ci-dessous dans l'ordre:
# 1) build.gradle Le fichier doit avoir le plugin Maven.
# 2) build.gradle Le fichier doit avoir le bloc de code suivant:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Puis exécutez installer gradle.
Cela entraînera la génération de fichiers pom-default.xml dans le sous-dossier pom.
Configuration de Maven
Les informations de configuration Maven pour l'utilisation et les projets créés restent aux emplacements suivants:
- Variable d'environnement MAVEN_OPTs : Il contient les informations nécessaires au démarrage de la machine virtuelle Java (JVM) et fournit également des fonctionnalités supplémentaires telles que les paramètres de mémoire de la machine virtuelle Java peuvent être définis sur une valeur de -Xms256m -Xmx512m.
- Fichier Settings.xml: Ce fichier réside dans le répertoire USER_HOME / .m2. Ce fichier prend en charge la majorité des configurations utilisées dans tous les projets construits dans Maven.
- Dossier .mvn: Ce dossier trouve une place au niveau supérieur du répertoire du projet. Les fichiers jvm.config, maven.config et extensions.xml contiennent des informations sur la configuration spécifique au projet.
- Fichier .mvn / extension.xml
- Fichier .mvn / maven.config
- Fichier .mvn / jvm.config
La configuration de Maven se fait aux niveaux listés ci-dessous:
- Installation: Ceci est adapté lors de l'installation de Maven.
- Projet: Il s'agit du fichier statique conservé dans le fichier pom.xml.
- Utilisateur: Ceci est configuré pour un utilisateur spécifique.
La configuration du projet est appliquée à l'ensemble du projet tandis que les autres configurations (installation et utilisateur) sont appliquées à l'environnement dans lequel nous travaillons. L'installation et les configurations utilisateur ne peuvent pas être ajoutées dans le cadre des données de projet partagées.
Configuration du référentiel local
L'emplacement du référentiel local peut être modifié dans le cadre de la configuration de l'utilisateur. Par défaut, l'emplacement est le répertoire .m2. Ceci est réalisé par le code xml ci-dessous.
path to the directory
Configuration du proxy
La configuration du proxy peut être conservée dans les paramètres.
Configuration de la résolution d'artefact parallèle
Maven télécharge un maximum de 5 artefacts de différents groupes à la fois.
Pour télécharger deux artefacts, nous devons spécifier la commande suivante:
mvn -Dmaven.artifact.threads = 2 vérifier
Déploiement et configuration de la sécurité
La section décrit les référentiels à déployer dans un projet spécifique. Les informations telles que le nom d'utilisateur, le mot de passe et d'autres paramètres de sécurité ne peuvent pas être placées dans ce projet. Afin de fournir ces informations, nous devons les ajouter en correspondance avec l'ID du référentiel de déploiement à l'intérieur du projet.
Ceci est réalisé par le code xml ci-dessous.
testrepository test password
Configurations de profils
Le référentiel Maven peut être configuré pour être mis dans le profil. À la fois, il peut y avoir plusieurs profils. En fonction des besoins, nous pouvons conserver un profil actif afin de pouvoir basculer vers différents environnements.
Autres configurations optionnelles
Afin d'avoir une configuration spécifique à l'environnement qui n'est pas spécifique à chaque projet, nous devons configurer les paramètres.
quelle est la meilleure application pour télécharger des vidéos youtube
Maven contient un fichier de paramètres présent dans le répertoire d'installation ou de base de l'utilisateur. Il prend en charge la configuration de certains des paramètres environnementaux comme indiqué ci-dessous:
- Nom d'utilisateur et mot de passe du serveur
- Emplacement du gestionnaire de référentiel
- Serveur proxy HTTP
Configurations de sécurité
Jusqu'à Maven 2.1.0+, nous avons la possibilité de chiffrer les mots de passe dans le fichier de paramètres. Mais nous devons construire un mot de passe principal avant de passer au chiffrement.
Plugins Maven
Les plugins Maven font partie intégrante du framework Maven. Chaque plugin est affecté à une tâche particulière.
Il existe deux types de plugins comme indiqué ci-dessous:
- Créer des plugins : Ils sont exécutés au moment de la construction et doivent être décrits sous la balise build dans le fichier pom.xml.
- Plugins de rapport : Ils sont exécutés au moment de la génération du site et doivent être décrits sous la balise de rapport dans le fichier pom.xml.
La liste ci-dessous montre certains des plugins principaux de Maven:
Plugins de base | Tâches effectuées |
---|---|
nettoyer | Nettoie les artefacts après la construction. |
compilateur | Le code source Java est compilé. |
déployer | Les artefacts de construction sont déployés dans le référentiel distant. |
installer | Les artefacts de construction sont installés dans le référentiel local. |
vérificateur | Utilisé pour les tests d'intégration. |
Ressources | Le répertoire de sortie obtient la copie des ressources à inclure dans Jar. |
site | Le site actuel du projet est généré. |
vérificateur | Utilisé pour le test d'intégration et vérifie les conditions spécifiques. |
Certains des plugins Maven Reporting sont répertoriés ci-dessous:
Plugins de rapport | Tâches effectuées |
pmd | Un rapport pmd est généré. |
changelog | Les modifications récentes de SCM sont générées sous forme de liste. |
changements | Un rapport sur le suivi des problèmes est généré. |
checkstyle | Le rapport Checkstyle est généré. |
Javadoc | La documentation Java pour le projet est générée. |
rapport infaillible | Les résultats des tests unitaires sont générés sous forme de rapport. |
linkcheck | Le rapport Linkcheck pour la documentation du projet est généré. |
jxr | Une référence croisée source est générée. |
Section FAQ
Q # 1) Maven est-il meilleur que Gradle?
Répondre: Gradle utilise une approche incrémentielle et d'évitement du travail. Gradle surveille les tâches d'entrée et de sortie et exécute celles qui sont requises. Cependant, pour les petits projets, Maven est toujours préféré tandis que Gradle convient aux projets plus grands et complexes.
Q # 2) Pourquoi Gradle est-il plus rapide que Maven?
Répondre: Gradle est beaucoup plus rapide que Maven en raison des approches ci-dessous de Gradle.
- Utilisation de Gradle Daemon qui garde les détails de construction prêts en mémoire.
- Compilation de manière incrémentielle.
- Utilisation du cache de construction qui récupère les artefacts des versions précédentes.
- Modélisation des dépendances de manière efficace par Gradle à l'aide du plugin Java.
Q # 3) Qu'est-ce que Maven Gradle?
Répondre: Gradle est un outil de création d'automatisation développé sur les fonctionnalités d'Apache Ant et d'Apache Maven. Il est open-source et fonctionne sur un langage lié au domaine basé sur Groovy. Il n'est pas piloté par le fichier pom.xml tel qu'utilisé par Maven pour les dépendances et configurations du projet.
Q # 4) Pourquoi Maven est-il préféré?
Répondre:
Maven est préféré en raison des avantages suivants:
- Référentiel central pour toutes les dépendances du projet.
- Maintient une structure de dossiers commune au sein des organisations.
- Peut être intégré avec des outils de contrôle de version comme Git et un outil d'intégration continue comme Jenkins.
- Le processus de construction est rendu plus simple, facile et uniforme.
Q # 5) Maven est-il uniquement pour Java?
Répondre: Maven est un outil de gestion de projet et de construction généralement utilisé pour les projets Java. Cependant, il peut être utilisé pour les projets développés en Ruby, C #, Scala, etc.
Q # 6) Pourquoi Maven est-il utilisé dans Eclipse?
Répondre: Eclipse IDE télécharge automatiquement les dépendances et les configurations à partir des référentiels Maven. En outre, la création de nouveaux projets Maven, la prise en charge du projet Maven existant et de pom .xml peuvent être effectués à l'aide d'Eclipse.
Q # 7) Quelle langue est Gradle?
Répondre: Gradle donne un langage lié au domaine également appelé DSL pour la construction. Cette langue est disponible en Groovy et Kotlin.
les meilleures sociétés d'études de marché au monde
Q # 8) Quels sont les avantages de Maven?
Maven a quelques dépendances comme les suivantes:
- Référentiel central pour toutes les dépendances du projet.
- Maintient une structure de dossiers commune au sein des organisations.
- Peut être intégré avec des outils de contrôle de version comme Git et un outil d'intégration continue comme Jenkins.
- Le processus de construction est simplifié et simplifié.
Conclusion
Ce didacticiel a abordé les concepts tels que Gradle vs Maven, comment convertir Gradle en Maven et vice versa, les configurations Maven et les plugins. En outre, certaines des commandes de base sur Maven et Gradle ont été explorées.
En ce qui concerne les plugins Maven, nous avons discuté de certains des plugins de reporting et de base de Maven.
Maven étant un sujet brûlant sur le marché, il est nécessaire de développer une compréhension du sujet et de développer une expertise sur cet outil.
=> Lisez la série de formations Easy Maven.
lecture recommandée
- Qu'est-ce que Maven - Tutoriel Maven pour les débutants
- Comment créer un projet Gradle avec Selenium
- Comment utiliser Gradle pour créer, tester et déployer des projets
- Gatling Script & Créer un projet Gatling à l'aide de l'archétype Maven
- Intégration de Maven avec TestNg à l'aide du plug-in Maven Surefire
- Que sont POM (Project Object Model) et pom.xml dans Maven
- Configuration de Maven avec Eclipse Java IDE
- 31 questions et réponses les plus fréquemment posées lors des entretiens avec Maven