web-dev-qa-db-fra.com

Quelle est la différence entre les projets Hudson et CruiseControl for Java?

Je pense que le titre le résume. Je veux juste savoir pourquoi l’un ou l’autre convient mieux aux intégrations continues de projets Java de Svn.

72
Jay R.

En tant que responsable CruiseControl de longue date et quelqu'un qui n'a jamais utilisé Hudson, je suis plutôt partial, mais voici ce que je pense:

Hudson est beaucoup plus facile à utiliser (en grande partie à partir d’une interface Web de Nice) et possède une communauté de développement de plugins très active.

CruiseControl prend en charge de nombreux éléments tiers et présente l'avantage de permettre à la configuration xml de faire de simples astuces, comme la préconfiguration de plug-in et include.projects, qui vous permettent de modifier les informations de configuration avec le projet.

Si vous ne voulez que quelques versions, je pense que Hudson est le grand gagnant. Si vous allez en avoir beaucoup - et que le xml ne vous dérange pas - alors je pense que les astuces de configuration xml de CruiseControl deviennent une véritable force.

36
Jeffrey Fredrick

Je suis d'accord avec cette réponse , mais je voulais ajouter quelques points.

En bref, Hudson (mise à jour: Jenkins) est probablement le meilleur choix maintenant. D'abord et avant tout parce que la création et la configuration de tâches ("projets" dans le vocabulaire CC) sont beaucoup plus rapides via l'interface utilisateur Web de Hudson, par rapport à l'édition du fichier de configuration XML de CruiseControl (que nous utilisions auparavant). garder le contrôle de version juste pour mieux le suivre). Ce dernier n’est pas particulièrement difficile, c’est tout simplement plus lent et plus fastidieux.

CruiseControl a été formidable, mais comme le note le billet de blog bien nommé de Dan Dyer, Pourquoi n'utilisez-vous toujours pas Hudson?, il souffre d'être le premier . (Euh, comme la Grande-Bretagne, si vous voulez, plus tard dans la révolution industrielle, quand d'autres ont commencé à la dépasser avec de nouvelles technologies.)

Nous avons beaucoup utilisé CruiseControl et sommes progressivement passés à Hudson pour finalement l’utiliser exclusivement. Et encore plus : nous avons commencé à utiliser le serveur CI pour de nombreuses autres choses, car la configuration et la gestion des tâches Hudson sont très pratiques. (Nous avons maintenant plus de 40 emplois à Hudson: les travaux de construction et de test habituels pour les branches stables et de développement; les travaux liés à la libération (installation d’installateurs, etc.); les travaux qui exécutent certaines métriques ) Tests d’interface utilisateur ou d’intégration par rapport à une version de base de données spécifique, etc.)

De cette expérience, je dirais que même si vous avez beaucoup de builds, y compris des versions compliquées, Hudson est un choix assez sûr car, comme CC, vous pouvez l’utiliser pour faire n'importe quoi , fondamentalement. Configurez simplement votre travail pour exécuter toutes les cibles Ant ou Maven, scripts Unix Shell ou Windows .bat, dans l'ordre de votre choix.

En ce qui concerne les informations de tiers ( mentionné ici par Jeffrey Fredrick ), c’est un bon point, mais j’ai l’impression que Hudson rattrape rapidement son retard et qu’il existe déjà un très grand nombre de plugins disponibles pour cela.

Pour moi, les deux choses que je peux nommer à propos de CruiseControl sont les suivantes:

  1. Ses courriels d'avertissement concernant les versions endommagées étaient plus instructifs que ceux d'Hudson. Dans la plupart des cas, la cause fondamentale était évidente dans le courrier HTML bien formaté de CC lui-même, alors qu'avec Hudson, je dois généralement suivre le lien vers l'interface utilisateur Web de Hudson et cliquer un peu pour obtenir les détails.
  2. Le tableau de bord CruiseControl est mieux adapté, tel quel " radiateur d'information " (affiché sur un moniteur public ou projeté sur un mur, de sorte que vous puissiez toujours voir rapidement le statut de tous les projets). Avec la page de couverture de Hudson, nous avions besoin de quelques astuces de Greasemonkey pour obtenir des rangées de tâches bien vert/rouge.

Avertissement légal: Je n'ai pas suivi le projet CC de près depuis environ un an. (Mais d'un coup d'oeil rapide , cela n'a pas changé de façon dramatique.)

Remarque (2011-02-03): Hudson a été renommé/forké comme Jenkins ( par Hudson créateur Kohsuke Kawaguchi et autres). Il semble que Oracle - qui contrôle le nom Hudson - conserve " Hudson " également, mais ma recommandation personnelle est de choisir Jenkins , peu importe ce que dit Oracle.

117
Jonik

Mon dernier projet, nous avons démarré sur CruiseControl. Ce qui a secoué. Ensuite, nous avons déménagé à Hudson, qui a encore plus basculé. Les choses que j’ai aimé chez Hudson:

  • Les projets en amont et en aval. Ainsi, une validation de votre code d'accès aux données déclenchera éventuellement également la construction de la couche de présentation.

  • Utilisez facilement un projet existant comme point de départ d'un nouveau. Si vous avez l'habitude de créer des branches de développement, assurez-vous qu'elles sont en cours d'intégration continue en un tournemain.

30
toolkit

Une différence est que Hudson est le produit d’un intellect de génie unique, Kohsuke Kawaguchi. À cause de cela, il est cohérent, cohérent et solide. L'inconvénient pourrait être une certaine limitation du taux de progrès. Cependant, Kohsuke est incroyablement prolifique, je ne m'inquiéterais donc pas trop pour cela. Et, il est extensible, donc s'il y a quelque chose que Kohsuke n'a pas le temps de faire (ou ne veut pas), vous pouvez probablement le faire vous-même.

15
erickson

J'ai jeté un œil à la fois sur les régulateurs de vitesse et sur Hudson, mais j'ai choisi Hudson car il était beaucoup plus facile à installer et à configurer. Hudson semble très largement utilisé de nos jours avec des versions régulières et beaucoup d'extensibilité via des plugins. Je le recommande fortement.

4
Mark

Hudson est l'alternative la plus conviviale à mon avis. Il peut être configuré et maintenu complètement via l'interface Web (en dehors de l'installation initiale de l'application Web, bien sûr).

La seule façon de dire cela à propos de CruiseControl est de compter l'éditeur de fichier XML intégré.

Néanmoins, après avoir utilisé les deux, je préférerais quand même que l’un ne soit pas automatisé.

3
Joachim Sauer

J'ai essayé le régulateur de vitesse ... C'est bon ... Mais les documents sont fragmentés. Le tableau de bord est déroutant. La création de widgets est également source de confusion. Je n'ai jamais essayé Hudson. Je vais essayer le week-end.

1
Jigar Shah

J'ai récemment installé Jenkins pour la construction de projets Borland BDS 2006 utilisant Subversion et j'en suis très heureux. Je n'ai encore jamais utilisé CruiseControl, je ne peux donc pas comparer. Lisez mon article de blog pour plus d'informations.

Intégration continue du projet Delphi avec Jenkins

0
Richard Zwinkels