MPS 2020.1 ヘルプ

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

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

modulea2

modulea1


モジュール依存関係ツール shows all transitive dependencies of the modules in the left panel: Optionally, it can also display all directly or indirectly used languages: It is possible to expand any dependency node and get all dependencies of the expanded node as children: These will again be transitive dependencies, but this time for the expanded node.

左側のパネルで 1 つ以上のディペンデンシーノードを選択します。右側のパネルには、その「親」モジュールから選択した各モジュールへのパスが表示されます。右側のツリーで、モジュール間の各関係の簡単な説明を見ることができます。依存関係の型は、に依存し、言語を使用ランタイムをエクスポートします が devkit などを使用しています。便宜上、ターゲットの依存モジュールの名前は太字で示されています。

modulea3


There are two types of dependency paths: 依存 and 使用言語 . The L button in the toolbar enables/disables displaying of 使用言語 in the left tree panel: When you select a module in the 使用言語 folder in the left tree, the right tree shows only the dependency paths that introduce the used language relation for the given module: To show "ordinary" dependencies on a language module, you should select it outside of the 使用言語 folder (e.g: the jetbrains.mps.lang.core language in the picture below). It is also possible to select multiple nodes (e.g: the same language dependency both inside and outside of the 使用言語 folder). In that case you get a union of results for both paths.

modulea4


When you are using a language that comes with its own libraries, those libraries are typically not needed to compile your project: It is the runtime when the libraries must be around for your code to work: For tracking runtime dependencies in addition to the "compile-time visible" ones, you should check the ランタイム option in the toolbar: The runtime dependencies are marked with a "runtime" comment.

modulea7


The modules in the left tree that participate in dependency cycles are shown in red color: It is possible to expand the tree node to see the paths forming the cycle:

modulea5


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

modulea6