Comment gérer plusieurs projets maven dans gitlab
nous avons plusieurs (environ 75) projets maven, que nous avons poussés à Gitlab individuel de la manière suivante:
Projets du groupe1 - 4
Projets du GROUPE2 - 2
Projets du GROUPE3-10
.
.
Projets du GROUPE10-6
nous voulons maintenant mettre en œuvre un outil de CI comme Jenkins
. Mais créer et gérer les 75 Projets dans l'individualité de jenkins prend beaucoup de temps. Si que nous avons 2 méthodes à l'esprit.
git submodules
: dans ce cas, nous pourrions avoir beaucoup de complications, car le développeur individuel est bifurqué le projet multiple et travaille dans son repo Fourché.git
Projet: dans ce cas, si chaque développeur va bifurquer le repo principal, alors l'espace disque requis est beaucoup et la performance va aussi se dégrader. Mais ce sera mieux quegit submodules
pour gérer, construire peut être simplifié avec mavenmultiple module way
.
Donc d'après vous, est-il une autre approche, nous pouvons penser, ou peut-on aller avec Seul projet git<!--7?
3 réponses
une autre approche, suggérée dans"vérifier plusieurs git repos dans le même espace de travail Jenkins" est d'utiliser un Jenkins pipeline, dans lequel vous pouvez payer plusieurs dépôts git.
ce qui signifie: Vous pouvez script que checkout, en évitant à la fois les sous-modules et monorepo.
GitLab groupe API, vous pouvez obtenir la liste des projets dans un groupe donné, ce qui signifie que vous pourriez envisager un travail par groupe.
Ou même un emploi pour tous les groupes.
on fait pareil mais pour les projets c++. Imaginez que vous ayez un fichier xml qui liste tous les dépôts nécessaires et leurs versions (i.e. branche ou étiquette), qui ressemble à:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<projects>
<project name="foo-project"
remote="https://github.com/my-org/foo"
path="foo"/>
<project name="bar"
remote="https://bitbucket.com/other-org/bar"
path="bar"/>
</projects>
</manifest>
Maintenant, vous avez besoin d'un outil pour manipuler ces fichiers. Un ancien serait git-repo (https://gerrit.googlesource.com/git-repo/), un nouveau par Google est jiri (https://github.com/fuchsia-mirror/jiri).
maintenant, considérant que vous devez construire tous les projets pour chaque groupez et déployez-les, utilisez https://wiki.jenkins.io/display/JENKINS/Repo + Plugin pour Jenkins.
ainsi, vous finirez avec 10 manifestes stockés dans votre dépôt, chacun contenant les projets que vous aurez besoin de construire.
exemple: vous avez un projet (manifeste, groupe) a qui inclut des sous-projets 1,2,3,4. Lorsque vous changez le sous-projet 3, il récupérera le manifeste A et reconstruira/redéploiera les 4 projets de ce groupe.
je crois que vous avez fait la rupture de votre projet 75 dans le groupe basé sur un certain processus de pensée donc ma suggestion est d'avoir des jobs Jenkins de groupe il donnera un meilleur contrôle aussi. si l'intention est d'avoir un emploi, alors appelez ces Jenkins emploi par groupe dans l'ordre.
nous exécutons 7 Jobs Jenkins différents pour 7 groupes différents dans un seul dépôt bit-bucket.