blob: 01d576972cf61de8540ad64c4720ef4900631b2b [file] [log] [blame]
Usage: %{product} %{command} [<option> ...] <query_type> [<args> ...]
The command will display the external dependency graph or parts thereof, structured to display different kinds of insights depending on the query type.
<query_type> [<args> ...] can be one of the following:
- graph: Displays the full dependency graph. Use the --from option to specify which module(s) you want the graph to start from (defaults to "<root>" which displays the whole dependency graph).
- deps <module>...: Displays the direct dependencies of the target module(s).
- path <module>...: Displays the shortest path found in the dependency graph from (any of) the --from module(s) to any of the target modules.
- all_paths <module>...: Display the dependency graph starting from (any of) the --from module(s) and containing any existing paths to any of the target modules.
- explain <module>...: Prints all the places where the module is (or was) requested as a direct dependency, along with the reason why the respective final version was selected. It will display a pruned version of the `all_paths <module>...` command which only contains the direct deps of the root, the <module(s)> leaves, along with their dependants (can be modified with --depth).
- show_repo <module>...: Prints the rule that generated the specified repos (i.e. http_archive()). The arguments may refer to extension-generated repos.
- show_extension <extension>...: Prints information about the given extension(s). Usages can be filtered down to only those from modules in --extension_usage.
<module> arguments must be one of the following:
- "<root>": The current (root) module you are inside of.
- <name>@<version>: A specific module version.
- <name>@_: Specifies the empty version of a module (for modules with a non-registry override).
- <name>: Can be used as a placeholder for all the present versions of the module <name>.
- @<repo_name>: The apparent repo name of one of the root project’s direct dependencies, as it is defined in the MODULE.bazel file. Unless otherwise specified, this must refer to a module, not an extension-generated repo.
- @@<repo_name>: The canonical name of any repo. Unless otherwise specified, this must refer to a module, not an extension-generated repo.
<extension> arguments must be of the form <module><label_to_bzl_file>%<extension_name>. For example, both rules_java//java:extensions.bzl%toolchains and @rules_java//java:extensions.bzl%toolchains are valid specifications of extensions.
%{options}