代码拉取完成,页面将自动刷新
English | 简体中文
SBOM-TOOL 是通过源码仓库、代码指纹、构建环境、制品信息、制品内容、依赖组件等多种维度信息,为软件项目生成软件物料清单(SBOM)的一款CLI工具。
开发语言 | 是否支持 |
---|---|
C/C++ |
是 |
Java |
是 |
C# |
是 |
Dart |
是 |
Golang |
是 |
Javascript |
是 |
Objective-C |
是 |
Php |
是 |
Python |
是 |
Ruby |
是 |
Rust |
是 |
Swift |
是 |
Lua |
是 |
现已支持以下编程语言相关的配置文件解析、二进制包解析,后续会逐步支持更多的编程语言。
包类型 | 包管理器 | 解析文件 | 是否支持依赖图谱 |
---|---|---|---|
maven |
Maven |
|
是 |
maven |
Gradle |
|
是 |
conan |
Conan |
|
是 |
npm |
NPM |
|
否 |
npm |
Yarn |
|
是 |
npm |
PNPM |
|
是 |
golang |
Go Module |
|
是 |
golang |
Glide |
|
否 |
golang |
GoDep |
|
否 |
golang |
Dep |
|
否 |
golang |
GVT |
|
否 |
pypi |
PIP |
|
是 |
pypi |
Poetry |
|
是 |
conda |
Conda |
|
否 |
composer |
Composer |
|
否 |
cargo |
Cargo |
|
是 |
carthage |
Carthage |
|
否 |
swift |
SwiftPM |
|
否 |
cocoapods |
Cocoapods |
|
是 |
gem |
Gem |
|
是 |
nuget |
NuGet |
|
是 |
pub |
Pub |
|
是 |
rpm |
RPM |
|
否 |
deb |
DEB |
|
否 |
lua |
LuaRocks |
|
否 |
bower |
Bower |
|
否 |
go 1.18
及以上版本)
git clone git@gitee.com:JD-opensource/sbom-tool.git
cd sbom-tool
make
或者通过 go install 安装
go install gitee.com/JD-opensource/sbom-tool/cmd/sbom-tool@latest
或者通过下载二进制文件安装: SBOM-TOOL发行版
子命令 | 功能 |
---|---|
help |
工具帮助手册 |
artifact |
采集软件包制品信息 |
assembly |
把各阶段生成的文档组装为SBOM文档 |
completion |
为指定的shell生成自动完成脚本 |
convert |
转换SBOM文档格式 |
env |
生成环境信息 |
generate |
生成SBOM文档 |
package |
收集包依赖项 |
source |
收集源代码信息 |
validate |
验证SBOM文档格式 |
info |
获取工具介绍信息 |
modify |
修改SBOM文档属性 |
参数 | 短参数 | 描述 | 使用样例 |
---|---|---|---|
--log-level |
指定日志级别,包括 debug 、info 、warn 、error
|
--log-level info |
|
--log-path |
指定日志路径,默认在用户主目录下自动生成日志目录及日志文件($home/sbom-tool/sbom-tool.log) | --log-path /tmp/sbom.log |
|
--quiet |
-q |
无控制台输出 |
--quiet -q
|
--ignore-dirs |
要忽略的目录,跳过所有点目录,以逗号分隔。示例:NODE_MODULES,LOGS | --ignore-dirs log,logs |
|
--language |
-l |
指定语言(目前支持:java ,cpp )(默认为“*”) |
--language java -l cpp
|
--parallelism |
-m |
并发度(默认为8 ) |
--parallelism 4 -m 9
|
--output |
-o |
指定结果输出文件存放路径及名称,默认会在当前目录下自动生成 | --output /tmp/sbom.json |
--src |
-s |
指定源代码存放路径,默认为当前目录 | --src /tmp/sbomtool/src/ |
--path |
-p |
指定项目工程主目录;assembly子命令中用于指定各阶段临时文档路径 | --path /tmp/sbomtool/ |
--dist |
-d |
指定制品存放路径,默认为当前目录 | --dist /tmp/sbomtool/bin/ |
--format |
-f |
指定SBOM文档格式(目前支持:xspdx-json 、spdx-json 、spdx-tagvalue )(默认为spdx-json ) |
--format spdx-json -f spdx-json
|
--input |
-i |
指定SBOM文档作为输入 | --input /tmp/sbom.jsom |
--algorithm |
-a |
用于指定生成SBOM文档标识的算法(目前支持:SHA1 、SHA256 、SM3 )(默认为SM3 ) |
--algorithm SHA256 |
规范 | 格式 | SBOM文档格式 | 是否支持 |
---|---|---|---|
XSPDX |
JSON |
xspdx-json |
已支持 |
SPDX |
JSON |
spdx-json |
已支持 |
SPDX |
TagValue |
spdx-tagvalue |
已支持 |
XSPDX 是基于SPDX扩展的SBOM格式规范
生成SBOM文档并指定格式
sbom-tool generate -m 4 -p ${project_path} -s ${src_path} -d ${dist_path} -o sbom.spdx.json -f spdx-json --ignore-dirs .git -n ${name} -v ${version} -u ${supplier} -b ${namespace}
获取工具介绍信息
sbom-tool info
更多使用案例,详见文档
详见 开发指南文档
如果在使用中遇到问题,欢迎您向我们提交ISSUE。
SBOM-TOOL 是一款开源的软件成分分析工具,期待您的贡献。
此项目是在 MulanPSL2 下授权的,有关详细信息,请参阅许可证文件。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。