开放代码社区 › sbom-tool

sbom-tool

开发工具Go

English 简体中文 SBOM-TOOL 是通过源码仓库、代码指纹、构建环境、制品信息、制品内容、依赖组件等多种维度信息,为软件项目生成软件物料清单(SBOM)的一款CLI工具。 采集源代码工程信息,包括仓库地址、版本信息等 采集并生成代码指纹,利用一定算法生成代码指纹 采集工程构建依赖环境信息,包括操作系统、内核、编译器、构建工具等 采集工程构建的依赖组件,支持多种语言、多种包管理器的依赖采集 采集最终制品包信息,包括包名、类型、唯一校验码等 采集制品内容信息,包括文件名类型、唯一校验码等 组装SBOM文档,基于上述采集的信息组装标准SBOM文档 规范格式转换,支持XSPDX、SPDX等

AI/机器学习Web后端前端工具部署/运维
作者:用户6868语言:Go更新:2026-10-27
仓库地址
https://gitee.com/JD-opensource/sbom-tool.git

前往原仓库

README

[![OSS Compass Analyze](https://oss-compass.org/badge/sru6zzan.svg)](https://oss-compass.org/analyze/sru6zzan)

# SBOM-TOOL
[English](https://gitee.com/JD-opensource/sbom-tool/blob/master/README.md) | 简体中文

SBOM-TOOL 是通过源码仓库、代码指纹、构建环境、制品信息、制品内容、依赖组件等多种维度信息,为软件项目生成软件物料清单(SBOM)的一款CLI工具。

## 功能特性

### 信息采集
- 采集源代码工程信息,包括仓库地址、版本信息等
- 采集并生成代码指纹,利用一定算法生成代码指纹
- 采集工程构建依赖环境信息,包括操作系统、内核、编译器、构建工具等
- 采集工程构建的依赖组件,支持多种语言、多种包管理器的依赖采集
- 采集最终制品包信息,包括包名、类型、唯一校验码等
- 采集制品内容信息,包括文件名类型、唯一校验码等
### SBOM文档
- 组装SBOM文档,基于上述采集的信息组装标准SBOM文档
- 规范格式转换,支持XSPDX、SPDX等规范,支持JSON等格式
- 规范格式校验,支持XSPDX、SPDX等规范,支持JSON等格式

## 代码指纹生成能力

| 开发语言          | 是否支持 |
|---------------|------|
| `C/C++`       | 是    | 
| `Java`        | 是  | 
| `C#`          | 是  | 
| `Dart`        | 是  | 
| `Golang`      | 是  | 
| `Javascript`  | 是  | 
| `Objective-C` | 是  | 
| `Php`         | 是  | 
| `Python`      | 是  | 
| `Ruby`        | 是  | 
| `Rust`        | 是  | 
| `Swift`       | 是  | 
| `Lua`         | 是  |


## 依赖包扫描能力


现已支持以下编程语言相关的配置文件解析、二进制包解析,后续会逐步支持更多的编程语言。

| 包类型         | 包管理器                                             | 解析文件                                                                                                                                                                                                                                 | 是否支持依赖图谱 |
|-------------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
| `maven`     | [Maven](https://maven.apache.org)                | <ul><li>`pom.xml`</li> <li>`*.jar`</li> <li>`*.war`</li><li>`[graph]maven-dependency-tree.txt(mvn dependency:tree -DoutputFile=maven-dependency-tree.txt)`</li></ul>                                                                 | 是        |
| `maven`     | [Gradle](https://gradle.org)                     | <ul><li>`*.gradle`</li>  <li>`.gradle.lockfile`</li> <li>`[graph]gradle-dependency-tree.txt(gradlew gradle-baseline-java:dependencies > gradle-dependency-tree.txt)`</li></ul>                                                       | 是        |
| `conan`     | [Conan](https://conan.io)                        | <ul><li>`conanfile.txt`</li> <li>`conan.lock`</li><li>`[graph]conan-graph-info.json(conan graph info -f json > conan-graph-info.json)`</li></ul>                                                                                     | 是        |
| `npm`       | [NPM](https://www.npmjs.com)                     | <ul><li>`package.json`</li> <li>`package-lock.json`</li></ul>                                                                                                                                                                        | 否       |
| `npm`       | [Yarn](https://yarnpkg.com)                      | <ul><li>`[graph]yarn.lock`</li></ul>                                                                                                                                                                                                 | 是        |
| `npm`       | [PNPM](https://pnpm.io/)                         | <ul><li>`[graph]pnpm.lock`</li></ul>                                                                                                                                                                                                 | 是        |
| `golang`    | [Go Module](https://go.dev/ref/mod)              | <ul><li>`go.mod`</li>  <li>`Go Binary file`</li> <li>`[graph]go-mod-graph.txt(go mod graph > go-mod-graph.txt)` </li></ul>                                                                                                           | 是        |
| `golang`    | [Glide](https://github.com/Masterminds/glide)    | <ul><li>`glide.yml`</li> <li>`glide.yaml`</li></ul>                                                                                                                                                                                  | 否       |
| `golang`    | [GoDep](https://github.com/tools/godep)          | <ul><li>`Godeps.json`  </li></ul>                                                                                                                                                                                                    | 否       |
| `golang`    | [Dep](https://github.com/golang/dep)             | <ul><li>`Gopkg.toml` </li></ul>                                                                                                                                                                                                      | 否       |
| `golang`    | [GVT](https://github.com/FiloSottile/gvt)        | <ul><li>`*/vendor/manifest`</li></ul>                                                                                                                                                                                                | 否       |
| `pypi`      | [PIP](https://pip.pypa.io)                       | <ul><li>`Pipfile.lock`</li>  <li>`*dist-info/METADATA`</li> <li>`PKG-INFO`</li> <li>`*requirements*.txt`</li> <li>`setup.py` </li><li>`[graph]pipenv-graph.txt(pipenv graph > pipenv-graph.txt)`</li></ul>                           | 是        |
| `pypi`      | [Poetry](https://python-poetry.org)              | <ul><li>`[graph]poetry.lock`</li></ul>                                                                                                                                                                                               | 是        |
| `conda`     | [Conda](https://conda.io)                        | <ul><li>`environment.yml`</li> <li>`environment.yaml`</li> <li>`package-list.txt`</li></ul>                                                                                                                                          | 否       |
| `composer`  | [Composer](https://get