支持的包生态系统
对于所有受支持的包生态系统,依赖项扫描同时支持直接依赖项和传递依赖项。 依赖项扫描无法检测存储库中的供应商依赖项。
由于检测如何运行依赖项扫描,请确保生成管道中有包还原步骤,以便确定正确的包版本,否则结果可能缺失或不完整。
生态系统和版本
程序包管理器 | 语言 | 支持的格式 | 支持的版本 |
---|---|---|---|
Cargo | Rust | Cargo.toml , Cargo.lock |
v1 |
CocoaPods | Swift | Podfile.lock |
不适用 |
Go 模块 | Go | go.mod , go.sum |
不适用 |
Gradle | Java | *.lockfile |
不适用 |
Maven | Java | pom.xml |
不适用 |
npm | JavaScript | package-lock.json 、、package.json npm-shrinkwrap.json 、、lerna.json |
v6、v7 和 lockfile <= v3 |
NuGet | C# | *.packages.config 、 *.project.assets 、、 *.csproj |
不适用 |
pip | Python | setup.py , requirements.txt |
不适用 |
pnpm | JavaScript | package.json |
v7、v8 |
RubyGems | Ruby | Gemfile.lock |
不适用 |
Yarn | JavaScript | package.json |
v1、v2 |
Cargo
如果使用 Cargo
v1.77 或更高版本安装的 cli, cargo metadata
则更准确。
Go 模块
如果使用 Go v1.17 或更高版本, go.mod
则直接使用,以及 go cli
代理上是否存在。 否则, go.sum
将扫描该文件。
Maven
检测要求 maven
在代理上安装 CLI。
npm
依赖项扫描会检测任何根 package.json
文件,但在生成时不解析特定包版本,即使未对依赖项进行 package.json
语义化版本控制也是如此。
NuGet
如果没有包还原,依赖项扫描也不会解析任何特定的包版本,即使未对依赖项 *.csproj
进行语义化版本控制。
pip
使用 pip v22.2.0
或更高版本启用 pip report
扫描,从而提供更准确的检测。
环境变量 PIP_INDEX_URL
用于确定应用于 pip install --report detection
哪个包源。 除非全局配置 pip 默认值,否则默认值使用 PyPi 索引。