Jenkins et Maven différence

Je suis un débutant dans cette zone. Quelle est la différence entre Maven et Jenkins. À mon avis, les deux prennent en charge les constructions automatisées et l'exécution automatisée de JUnits. Si oui, sont-ils gratuits? Ou mutuellement exclusifs?

49
demandé sur abson 2012-05-31 17:06:50

4 réponses

Maven construit un outil / environnement. Jenkins est un outil CI (intégration continue).

Maven est plus comme un remplacement pour Ant.

  1. il aide à la construction du projet à travers plugins par exemple build et contrôle de version, tests JUnit, etc...
  2. , Il gère dépendances de votre projet. vous définissez comment un projet doit être construit (plugins), et quelles bibliothèques sont nécessaires (dépendances) dans un pom.fichier xml.

Jenkins comme un travail intelligent scheduler, ne peut pas vous aide avec des tâches comme le contrôle de version ou le test JUnit, mais il peut indirectement vous aide avec tout cela, en faisant des appels au pom.fichier xml dans votre projet. Et Jenkins vous donne le pouvoir de décider quand appeler le pom.fichier xml, basé sur quelle condition appeler, et ce que vous voulez faire avec le résultat. et Jenkins peut écouter différents événements, par exemple svn commit, l'heure actuelle est minuit, etc..

C'est une idée puissante. Par exemple, vous pouvez demander Jenkins pour déclencher une génération ou exécuter tous les tests JUnit chaque fois qu'un nouveau code est validé, puis, si les tests unitaires sont passés, déployer sur une machine cible. ou planifier des tâches lourdes à minuit, par exemple des tests unitaires.C'est l'idée de base du déploiement automatique ou de l'intégration continue. CI pour faire court si vous le souhaitez.

78
répondu Junchen Liu 2016-12-14 11:03:40

Maven est un outil de génération qui gère les dépendances et le cycle de vie de l'application. Il avait également une conception de plug - in qui vous permet d'ajouter d'autres tâches aux tâches standard de compilation/test/package/installation/déploiement.

Jenkins est une suite d'intégration continue qui vérifie votre code hors d'un référentiel, le construit et l'empaquette, et le décharge sur un serveur afin que vous puissiez le tester - tous les hands-off. Il peut utiliser Maven ou Ant comme outil de construction.

En résumé, Jenkins peut utiliser Maven comme build outil d'intégration continue. Vous pouvez utiliser Maven sans Jenkins si vous choisissez de ne pas faire CI.

23
répondu duffymo 2018-01-11 14:19:46

Le premier paragraphe de la page Wiki du plugin Jenkins Maven explique l'interaction entre Jenkins et Maven:

" Gérer les jobs Jenkins n'est pas facile quand il y en a beaucoup, surtout si certains paramètres doivent être identiques parmi de nombreux jobs. "jenkins-maven-plugin" permet de générer des jobs Jenkins, un " config.xml " par travail, à partir d'un simple Maven POM. De cette façon, nous pouvons avoir tous les travaux Jenkins contrôlés en un seul endroit, réutilisant n'importe quelle quantité de configuration entre ils."

3
répondu DavidS 2014-08-14 11:16:10

Maven est un outil de construction, en bref un successeur de fourmi. Il aide à construire et le contrôle de version.

Cependant Jenkins est un système d'intégration continue, où dans maven est utilisé pour la construction. Jenkins peut être utilisé pour automatiser le processus de déploiement. Lorsque le nouveau code est validé, exécutez automatiquement tous les cas de test Junit et, s'ils sont passés, empaquetez et déployez le projet à l'emplacement spécifique.

0
répondu Preetham R U 2015-06-05 10:04:26