38个版本 (破坏性更新)
0.29.0 | 2020年1月30日 |
---|---|
0.28.0 | 2019年12月24日 |
0.27.0 | 2019年9月28日 |
0.26.0 | 2019年4月12日 |
0.3.1 | 2015年12月31日 |
#644 in Cargo插件
每月 1,024 次下载
27KB
641 行
cargo-tree
cargo tree
是一个Cargo子命令,用于以树状格式可视化crate的依赖关系图。
要求:cmake
和 openssl
。
- macOS(通过 homebrew):
brew install cmake openssl
- Debian/Ubuntu:
apt install cmake libssl-dev pkg-config
使用Cargo安装
$ cargo install cargo-tree
在其默认模式下,cargo tree
将打印本地crate的"正常"依赖关系
$ cargo tree
postgres v0.10.2 (file:///Volumes/git/rust/rust-postgres)
├── bufstream v0.1.1
├── byteorder v0.4.2
├── hex v0.1.0
├── log v0.3.4
│ └── libc v0.2.4
├── net2 v0.2.20
│ ├── cfg-if v0.1.0
│ ├── kernel32-sys v0.2.1
│ │ └── winapi v0.2.5
│ ├── libc v0.2.4 (*)
│ ├── winapi v0.2.5 (*)
│ └── ws2_32-sys v0.2.1
│ └── winapi v0.2.5 (*)
└── phf v0.7.9
└── phf_shared v0.7.9
crate的依赖关系只会在第一次显示时显示 - 进一步的副本将在其输出后附加一个 (*)
以指示输出已被截断。
与其他 cargo
子命令一样,可以通过 --features
标志启用功能
$ cargo tree --features serde_json
postgres v0.10.2 (file:///Volumes/git/rust/rust-postgres)
├── bufstream v0.1.1
├── byteorder v0.4.2
├── hex v0.1.0
├── log v0.3.4
│ └── libc v0.2.4
├── net2 v0.2.20
│ ├── cfg-if v0.1.0
│ ├── kernel32-sys v0.2.1
│ │ └── winapi v0.2.5
│ ├── libc v0.2.4 (*)
│ ├── winapi v0.2.5 (*)
│ └── ws2_32-sys v0.2.1
│ └── winapi v0.2.5 (*)
├── phf v0.7.9
│ └── phf_shared v0.7.9
└── serde_json v0.6.0
├── num v0.1.29
│ ├── rand v0.3.12
│ │ ├── advapi32-sys v0.1.2
│ │ │ └── winapi v0.2.5 (*)
│ │ ├── libc v0.2.4 (*)
│ │ └── winapi v0.2.5 (*)
│ └── rustc-serialize v0.3.16
└── serde v0.6.7
└── num v0.1.29 (*)
cargo tree
还可以以"反向"模式运行,其中遍历依赖关系图是反向的。这在尝试确定某个crate的来源时最为有用。使用 --package
或 -p
标志选择作为树根的crate,使用 --invert
或 -i
标志反转依赖关系图遍历
$ cargo tree --features serde_json -p libc -i
libc v0.2.4
├── log v0.3.4
│ └── postgres v0.10.2 (file:///Volumes/git/rust/rust-postgres)
├── net2 v0.2.20
│ └── postgres v0.10.2 (file:///Volumes/git/rust/rust-postgres) (*)
└── rand v0.3.12
└── num v0.1.29
├── serde v0.6.7
│ └── serde_json v0.6.0
│ └── postgres v0.10.2 (file:///Volumes/git/rust/rust-postgres) (*)
└── serde_json v0.6.0 (*)
还有更多选项 - 有关详细信息,请参阅 cargo tree --help
的输出。
依赖关系
~4.5MB
~69K SLoC