0

J'utilise Jenkins CI (Single Pipeline Job) pour pousser différents fichiers vers JFrog Artifactory.Comment mettre à jour Artifact Build Module ID

Pour chaque build, je publie l'information de construction à Artifactory. Mais chaque build a le même ID de module.

par exemple: Dans Artifactory Browser Repository sélectionnez tout artefact puis allez construire onglet, il montre tous les builds au lieu des informations

donc je construire artefact respectif savoir comment modifier le tout module artefact ID publication des informations d'artefact sur Artifactory

+0

Qu'avez-vous déjà essayé? –

+0

après le téléchargement des artefacts à Artifactory, nous obtiendrons l'objet info de construction. plus tard, nous publierons ces informations de construction dans Artifactory. entre ces deux étapes, j'ai essayé de mettre à jour l'objet info de construction. –

+0

comment téléchargez-vous, mvn? gradle? –

Répondre

0

Les informations de construction et le stockage d'artefact sont soumis à différents mécanismes. L'information de construction est seulement associée aux artefacts dans le sens où vous pouvez définir quels artefacts sont produits à partir d'une construction et quels artefacts sont une dépendance d'une construction. L'ID du module n'a aucune association avec les informations de construction. L'ID du module est défini par la disposition du référentiel dans laquelle l'artefact est stocké. Voir la documentation de jfrog ici: https://www.jfrog.com/confluence/display/RTF/Repository+Layouts

Vous ne pouvez pas changer l'ID du module. Artifactory attribue un ID de module en fonction de la disposition du référentiel. Cela signifie que le chemin vers l'artefact est important pour définir l'ID du module. Par exemple, la disposition du référentiel

[org]/[module]/[module] _ [base_rev]. [Ext] donne les ID de module à tout artefact stocké suivant ce modèle en tant que [org]: [module]: [ base_rev]. Les artefacts sont associés aux constructions à la fois par une propriété build.name, build.number sur l'artefact et par la publication d'une info de génération à partir d'un fichier .json. Le .json doit inclure une section indiquant quels artefacts ont été produits à partir de la construction.

En général, il semble que vous ayez besoin de vous assurer que chaque artefact est déployé sur un chemin unique en mode artificiel avec la propriété build.name et build.number en cours de définition. L'autre chose à regarder est le hachage du fichier. il doit correspondre dans les informations de construction en cours de publication. Donc, si le hachage du fichier n'est pas différent, cela signifie qu'il n'y a aucun changement à l'artefact de la version précédente. Je ne sais pas à quel point cela vous aidera, mais il y a beaucoup de nuances dans la mise en ligne des artefacts et des builds. Vous avez mentionné l'utilisation de Jenkins, avez-vous envisagé d'utiliser le plugin Jenkins Artifactory. Il devrait prendre soin de beaucoup de ce travail pour vous, bien que nous employions le bambou, ainsi je ne suis pas aussi familier avec combien il diffère.

+0

que vous avez mentionné L'ID du module est défini par la disposition du référentiel. On dirait que ce n'est pas vrai. Parce que j'utilise le dépôt Maven à l'intérieur J'ai deux dossiers différents, l'un est pour les artefacts Java, l'autre est pour les fichiers généraux. Je reçois différents ID de module pour chaque artefact java mais pas pour les fichiers généraux dans le même référentiel. –