7 votes

Construire la promotion : comment gérez-vous les dépendances ?

Je cherche à comprendre toutes les implications du passage de nos projets Java d'une politique Snapshot/Release à une promotion de build.

Une étape évidente est que chaque build crée un artefact qui peut aller jusqu'à l'environnement de production, donc il n'y a plus de Snapshot. Mais alors, comment gérer le lien d'un projet vers d'autres artefacts, qui peuvent ou non être autorisés à aller en prod ?

J'ai eu du mal à trouver des informations précieuses sur ce sujet particulier. Bien sûr, la promotion de build est beaucoup discutée, mais la gestion des dépendances à la lumière d'une migration vers la promotion de build est moins visible.

Je vois deux choix:

  • On ne peut dépendre que des artefacts qui ont été précédemment promus vers l'environnement de production
  • Lorsqu'on dépend d'autres artefacts, l'artefact construit ne peut aller qu'à l'environnement final de ses dépendances. Autrement dit, si je dépends d'un artefact autorisé à aller en test et non en prod, mon build ne pourra pas aller en prod.

Y a-t-il des normes de l'industrie concernant ce sujet ? Ou des bonnes pratiques ?

Merci beaucoup pour votre aide :)

modifications: Nous déployons sur Artifactory trois types d'artefacts :

  • Librairies

  • EARs

  • Les modules à l'intérieur des EARs. Certains de ces modules sont des couches "publiques" nécessaires à tout EAR qui souhaite interagir avec l'EAR actuellement construit

Nous déployons des EARs sur des serveurs JEE. Nos librairies et couches publiques sont déployées sur Artifactory et empaquetées dans les EAR, elles ne sont donc pas directement déployées sur les conteneurs JEE.

Un projet construit plusieurs modules, et tout est empaqueté dans un EAR, avec ses dépendances. Un projet peut dépendre d'un module d'un autre projet et c'est là que ça se complique...

3voto

JF Meier Points 7713

Nous distinguons entre les "artefacts déployables" et les "bibliothèques".

Les artefacts déployables (comme les ears, wars, jar autonomes) passent par un pipeline, afin d'être promus et testés à différentes étapes. Ils ne peuvent pas être des dépendances pour un autre artefact.

Les bibliothèques, en revanche, ne sont pas promues. Lorsqu'elles sont construites (en tant que version de release), elles sont immédiatement disponibles comme dépendance possible pour tous les autres artefacts (la version de release inclut des tests unitaires et certains tests d'intégration). Elles sont testées et promues de manière indirecte lorsqu'elles sont utilisées dans des artefacts déployables.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X