Résolution des dépendances de bibliothèque
Pour la résolution des dépendances de bibliothèque, le graphe de dépendances complet est déterminé à partir du Libraries.json liste de référence et écrit à la Libraries.lock.json fichier de verrouillage.
La résolution des bibliothèques est exécutée lors de la première création d'une bibliothèque. Par la suite, elle est déclenchée explicitement par l'utilisateur. Après la création initiale d'un projet de périphérique, la résolution des bibliothèques s'exécute automatiquement une seule fois, puis plus jamais, même à l'ouverture d'un projet. De ce fait, les modifications apportées au graphe de dépendances sont toujours détectées.
Pour résoudre les problèmes de bibliothèques, vous utilisez la Résoudre les bibliothèques commande dans le menu contextuel de Libraries.json Les références sont prises en compte lorsqu'elles n'ont pas encore de résolution ou lorsque leur résolution enregistrée ne correspond plus à la définition du fichier. Libraries.json déposer.
Le Résoudre toutes les bibliothèques Cette commande reconstruira l'intégralité du graphique.
Processus de résolution
Le graphe de dépendance est construit de manière récursive. Pour chaque bibliothèque référencée, ses propres références sont également résolues. De cette façon, le graphique est progressivement étendu jusqu'à ce que toutes les dépendances soient enregistrées.
Lorsqu'une bibliothèque est référencée via un modèle de version, toutes les sources de bibliothèques disponibles sont examinées lors de la résolution afin de déterminer la version la plus appropriée. Ces sources incluent le cache de bibliothèques et tous les dépôts de bibliothèques configurés.
Priorité de résolution :
Le règlement des litiges s'effectue selon un ordre de priorité fixe. La première règle applicable prévaut.
Référence via un chemin relatif
Référence avec une version fixe de la bibliothèque
Référence avec un modèle de version : la dernière version correspondante est sélectionnée
Espaces réservés avec une substitution dans
Libraries.json(placeholderOverridessection)Espaces réservés résolus par un composant ou une extension de CODESYS 4
Espaces réservés avec une résolution unique issue des descriptions de l'appareil
Chemin dans la description du périphérique :
library-management\placeholder-libraries\
Erreurs et conflits
S'il y a une objection lors de la résolution des bibliothèques, le processus est interrompu avec une erreur. Dans ce cas, aucun fichier de verrouillage n'est créé
Un conflit existe dans les cas suivants :
La même bibliothèque est résolue en différentes versions fixes.
Différentes bibliothèques sont résolues pour un même espace de noms.
Une bibliothèque est référencée simultanément via une version fixe et via un modèle de version qui ne correspond pas.
Différentes descriptions de périphériques résolvent le même espace réservé de manière contradictoire.
Ce cas ne se produit pas lorsqu'un remplacement d'espace réservé est effectué dans le
Libraries.jsonLe fichier définit déjà de manière unique l'espace réservé.
Un message d'erreur s'affiche également lorsqu'une bibliothèque requise ne peut être résolue. Si une bibliothèque optionnelle ne peut être résolue, seul un message de diagnostic est généré. Dans ce cas, la bibliothèque est ignorée et la résolution se poursuit.
Après la résolution
Une fois le problème résolu, les bibliothèques seront accessibles. Le chemin relatif d'une bibliothèque est vérifié afin de s'assurer de sa validité. Si ce chemin pointe vers un projet de bibliothèque source, ce projet sera chargé dans l'espace de travail en tant que projet modifiable. Toutes les autres bibliothèques seront restaurées à partir de leurs sources dans le cache de bibliothèques, à condition qu'elles n'y soient pas déjà présentes. Le chemin dans le fichier de verrouillage pointera alors vers l'emplacement de la bibliothèque dans le cache.