如何手动生成未识别Sencha Ext JS组件的SPDX格式SBOM条目?
针对本地未公开组件的SPDX条目生成方案
一、SPDX ID 生成规则
SPDX ID是每个组件在SBOM中的唯一标识,规则清晰明确:
- 必须以
SPDXRef-作为前缀,不可省略 - 前缀后的自定义部分仅允许包含字母、数字、连字符(-)、下划线(_)、点(.),不能有空格或其他特殊字符
- 确保整个SBOM内所有组件的SPDX ID不重复,建议结合组件名和版本做区分,比如:
- Sencha Ext JS 6.0.3.41的SPDX ID可设为
SPDXRef-SenchaExtJS-6.0.3.41 - 其关联组件(如主题包)可设为
SPDXRef-SenchaExtJS-Theme-Neptune-6.0.3.41
- Sencha Ext JS 6.0.3.41的SPDX ID可设为
- 大小写敏感,建议统一风格(比如全小写加短横线,或驼峰式),保持整个SBOM的一致性
二、手动生成本地组件SPDX条目的实用资源与方法
核心参考依据
直接参考SPDX官方规范的「Package」章节,里面明确了本地未公开包的必填/可选字段:
- 必填字段:
SPDXID、name、versionInfo、downloadLocation(无公开地址填NOASSERTION)、filesAnalyzed(未扫描文件内容填false) - 关键可选字段:
licenseConcluded(已知的许可证,比如Sencha的商业许可证)、copyrightText(已知版权信息或NOASSERTION)、description(组件功能描述)
工具辅助
- SPDX Toolkit CLI:可通过模板生成本地包的SPDX条目,支持JSON/YAML格式,生成后可手动编辑字段,再合并到现有SBOM中
- Microsoft SBOM Tool 内置合并功能:使用
sbom-tool merge命令,将手动编写的本地组件SPDX片段(单独的JSON/YAML文件)与自动生成的SBOM合并,具体参数可通过sbom-tool merge --help查看
示例参考
SPDX官方规范的附录里有完整的SBOM示例,其中包含本地未公开组件的条目,可直接参考字段的填写格式和取值方式,比如:
packages: - SPDXID: SPDXRef-SenchaExtJS-6.0.3.41 name: Sencha Ext JS versionInfo: 6.0.3.41 downloadLocation: NOASSERTION filesAnalyzed: false licenseConcluded: LicenseRef-Sencha-Commercial copyrightText: NOASSERTION
内容的提问来源于stack exchange,提问作者Xorcist
相关产品推荐
相关产品推荐

