MPS 2023.3 ヘルプ

モジュール依存関係ツール

モジュール依存関係ツールを使用すると、ユーザーは、モジュールまたはモジュールのセットのすべての依存関係と使用言語を概観し、潜在的な循環依存関係を検出し、依存関係を形成する詳細なパスを確認できます。このツールは、1 つ以上のモジュールが選択されている場合、メニューおよびプロジェクトペインから呼び出すことができます。

modulea2.png
modulea1.png

Module Dependency Tool は、左側のパネルにモジュールのすべての推移的な依存関係を表示します。オプションで、直接または間接的に使用されるすべての言語を表示することもできます。任意の依存関係ノードを展開し、展開されたノードのすべての依存関係を子として取得することができます。これらも推移的な依存関係になりますが、今回は拡張ノード用です。

左側のパネルで 1 つ以上の依存関係ノードを選択します。右側のパネルには、選択した各モジュールの「親」モジュールからのパスが表示されます。右側のツリーで、モジュール間の各関係の簡単な説明を確認できます。依存関係の型は、depends on、uses languageexports runtimeuses devkit などのいずれかになります。便宜上、対象の依存モジュールの名前は太字で表示されます。

modulea3.png

依存関係パスには、依存関係使用言語の 2 種類があります。ツールバーの L ボタンを使用すると、左側のツリーパネルでの使用言語の表示を有効 / 無効にできます。左側のツリーの使用言語フォルダーでモジュールを選択すると、右側のツリーには、特定のモジュールの使用言語関係を導入する依存関係パスのみが表示されます。言語モジュールの「通常の」依存関係を表示するには、使用言語フォルダーの外側でモジュールを選択する必要があります (たとえば、下の図の jetbrains.mps.lang.core 言語)。複数のノードを選択することもできます (たとえば、使用言語フォルダーの内側と外側の両方で同じ言語依存関係)。その場合、両方のパスの結果が結合されます。

modulea4.png

独自のライブラリが付属する言語を使用している場合、通常、それらのライブラリはプロジェクトのコンパイルには必要ありません。コードが機能するためには、ランタイム時にライブラリが必要になります。「コンパイル時に表示される」依存関係に加えてランタイム依存関係を追跡するには、ツールバーのランタイムオプションをオンにする必要があります。ランタイム依存関係には、「ランタイム」コメントが付けられます。

modulea7.png

依存関係サイクルに参加する左側のツリーのモジュールは、赤色で表示されます。ツリーノードを展開して、サイクルを形成するパスを確認できます。

modulea5.png

一部の種類の依存関係では、ポップアップメニューで、使用状況の表示安全な削除などの便利なアクションを呼び出すことができます。「依存先」依存関係 (再エクスポートのない依存関係) の場合、使用状況の表示アクションのために依存関係アナライザーが呼び出されます。

modulea6.png