ライブラリの依存関係の解決
ライブラリの依存関係を解決するために、完全な依存関係グラフは以下から決定されます。Libraries.json参考文献リストとLibraries.lock.jsonロックファイル。
ライブラリ解決は、ライブラリが初めて作成されたときに実行されます。その後は、ユーザーによる明示的なトリガーによって実行されます。デバイスプロジェクトが最初に作成された後、ライブラリ解決は自動的に一度実行されますが、プロジェクトを開いたときを含め、それ以降は自動的に実行されることはありません。そのため、依存関係グラフの変更が見逃されることはありません。
ライブラリを解決するには、リゾルブライブラリコンテキストメニューのコマンドLibraries.jsonファイル。参照は、まだ解決されていない場合、または保存されている解決が定義と一致しなくなった場合に考慮されます。Libraries.jsonファイル。
のすべてのライブラリを解決するこのコマンドはグラフ全体を再構築します。
解決プロセス
ディペンデンシーグラフは再帰的に作成されます。参照先のライブラリごとに、それぞれのリファレンスも解決されます。こうすることで、すべての依存関係が明らかになるまで、グラフは徐々に拡大されていきます。
ライブラリがバージョンパターンで参照される場合、解決時に利用可能なすべてのライブラリソースが調べられ、最適なバージョンが決定されます。ソースには、ライブラリキャッシュと構成済みのすべてのライブラリリポジトリが含まれます。
解決の優先順位:
参照は固定された順位に従って解決されます。最初に適用されたルールが優先されます。
相対パスによる参照
ライブラリの修正版を参照
バージョンパターンによる参照: 最新の一致するバージョンが選択されます
オーバーライド付きのプレースホルダー
Libraries.json(placeholderOverridesセクション)コンポーネントまたは拡張機能によって解決されるプレースホルダーCODESYS 4
デバイスの説明から取得した固有の解像度を持つプレースホルダー
デバイスの説明内のパス:
library-management\placeholder-libraries\
エラーと競合
ライブラリの解決中にコンフリクトが発生すると、処理はエラーで中止されます。この場合、ロックファイルは作成されません
以下のような場合には、紛争が発生します。
同じライブラリが異なる固定バージョンに解決されます。
同じ名前空間に対して、異なるライブラリが解決される。
ライブラリは、固定バージョンと、一致しないバージョンパターンの両方によって同時に参照されている。
異なるデバイス記述が、同じプレースホルダーを矛盾した方法で解決する。
このケースは、プレースホルダーのオーバーライドでは発生しません。
Libraries.jsonファイルには既にプレースホルダーが一意に定義されています。
必要なライブラリが解決できない場合は、エラーメッセージが表示されます。オプションのライブラリが解決できない場合は、診断メッセージのみが生成されます。この場合、ライブラリはスキップされ、解決処理が続行されます。
決議後
解決後、ライブラリにアクセスできるようになります。相対パスを持つライブラリは、有効なパスかどうかがチェックされます。パスがソースライブラリプロジェクトを指している場合、そのプロジェクトは編集可能なプロジェクトとしてワークスペースにロードされます。残りのライブラリは、既にライブラリキャッシュに存在しない限り、ソースからライブラリキャッシュに復元されます。その後、ロックファイル内のパスは、ライブラリキャッシュ内のライブラリの場所を指すようになります。