01
依赖检查总览
为什么SDK发布前必须做依赖检查?核心目标与范围。
概览基础
02
依赖清单梳理
如何生成完整依赖清单?手动 vs 自动工具 (pip freeze, mvn dependency:tree)。
工具清单
03
版本冲突检测
什么是依赖版本冲突?如何通过 pipdeptree 等工具发现并解决冲突?
冲突调试
04
许可证合规性检查
为什么关注开源许可证?使用 FOSSA, Snyk 扫描许可证。
合规法律
05
安全漏洞扫描
常见CVE类型,使用 OWASP Dependency-Check / Snyk 扫描。
安全CVE
06
传递依赖管理
什么是传递依赖?如何锁定传递依赖版本 (lock 文件)?
传递锁定
07
平台兼容性检查
依赖是否支持目标 OS (Windows, Linux, macOS) 和架构 (x86, ARM)。
兼容多平台
08
Python 环境专项
virtualenv, pipenv, requirements.txt 与 setup.py 的区别。
Python虚拟环境
09
Java/Maven 专项
pom.xml 依赖管理,scope 作用,排除传递依赖。
JavaMaven
10
Node.js/npm 专项
package.json, package-lock.json, npm audit 使用。
Nodenpm
11
Go 模块专项
go.mod, go.sum 作用,如何检查间接依赖。
Go模块
12
C/C++ 依赖检查
vcpkg, Conan 等包管理器的依赖检查方法。
C/C++vcpkg
13
Docker 镜像依赖
如何检查 Docker 镜像中的系统包依赖 (apt, yum)?
Docker镜像
14
依赖大小与性能影响
分析依赖包大小,避免引入臃肿库。
性能体积
15
废弃与过时依赖
识别并替换已废弃或不再维护的依赖包。
维护废弃
16
内部私有依赖检查
检查公司内部私有仓库的依赖版本与可用性。
私有内部
17
依赖缓存与离线构建
配置依赖缓存加速构建,离线构建检查要点。
缓存离线
18
CI/CD 流水线集成
集成依赖检查到 Jenkins, GitHub Actions 等 CI 工具。
CI/CD自动化
19
自动化检查脚本编写
使用 Python 或 Shell 编写自动化依赖检查脚本。
脚本自动化
20
依赖检查报告生成
生成可读报告 (HTML, JSON, PDF)。
报告可视化
21
多语言项目依赖检查
处理 Python, Java, Node.js 等多语言混合项目。
多语言混合
22
依赖锁定文件最佳实践
何时用 lock 文件?如何维护和更新?
lock最佳实践
23
依赖更新策略
制定更新频率,理解语义化版本 (SemVer)。
更新SemVer
24
依赖替换与降级
出现问题时如何安全替换或降级依赖版本。
降级替换
25
测试与生产环境依赖分离
区分 dev, test, prod 环境的依赖。
环境分离
26
依赖检查工具对比
pip-audit vs safety vs Snyk vs Trivy,如何选择?
对比选型
27
手动检查清单
除了自动化工具,人工检查的关键点。
人工清单
28
发布前的最终确认
依赖检查通过后的确认步骤与签字流程。
发布签字
29
常见依赖问题案例分析
真实项目复盘,如 Log4j 漏洞。
案例复盘
30
依赖检查的未来趋势
SBOM 生成与管理,供应链安全。
SBOM趋势