Jenkins中“仅调用OWASP Dependency-Check NVD更新”功能失效求助
解决Jenkins + OWASP Dependency Check NVD更新失败且Workspace清空的问题
刚踩过类似的坑,结合你描述的场景——AWS上部署Jenkins,首次运行OWASP Dependency Check的NVD更新任务,未配置数据目录,前期Workspace能看到下载中的文件,11分钟后构建失败且Workspace被清空,给你几个实用的排查和解决方向:
1. 未配置持久化数据目录是核心诱因
OWASP Dependency Check需要将体积庞大的NVD数据库文件存储在本地持久化路径中,如果你没指定数据目录,Jenkins会默认把文件放在Job的临时Workspace里。而Jenkins有个默认行为:无论构建成功还是失败,临时Workspace在任务结束后都会被自动清理,这就解释了为什么最后Workspace空了,且未完成的数据库文件也被清掉。
解决步骤:
- 打开Jenkins的「全局工具配置」,找到OWASP Dependency Check的配置项,指定一个固定的
数据目录(比如在AWS EC2实例上选择/var/lib/jenkins/dependency-check-data,或者挂载专门的EBS卷来存储)。 - 给这个目录设置正确的权限,确保Jenkins进程可读写:
sudo chown -R jenkins:jenkins /path/to/your/data/dir
2. 网络超时或AWS网络限制导致下载失败
NVD数据库文件体积不小,AWS环境中如果实例的安全组、NACL限制了对外访问,或者带宽不足,很容易出现下载超时,触发构建失败后进而导致Workspace被清理。
排查&解决:
- 先在Jenkins服务器上手动测试网络连通性:
curl -I https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-recent.json.gz,查看是否能获取正常的HTTP响应。 - 检查EC2实例的安全组,确保允许 outbound 的HTTPS(443端口)流量访问
nvd.nist.gov相关域名。 - 如果带宽实在有限,可尝试开启插件的「增量更新」选项,或者手动提前下载NVD数据库压缩包到指定数据目录,让插件直接使用本地文件完成初始化。
3. Jenkins构建超时限制打断了更新
Jenkins默认的构建超时时间可能短于NVD首次更新所需的时间(毕竟首次更新需要下载几个G的文件),超时后Jenkins会强制终止任务,随后清理Workspace。
解决办法:
- 进入你的NVD更新Job配置页面,找到「高级项目选项」或「构建环境」中的超时设置,将时间调长(比如设置为30分钟以上,首次更新确实需要较多时间)。
4. 磁盘空间不足导致下载中断
AWS实例的根磁盘默认空间可能不大,当NVD数据库下载到一半时磁盘满了,会直接导致构建失败,同时Workspace也会被清理。
排查&解决:
- 在服务器上执行
df -h查看磁盘使用情况,确保Workspace所在分区或你指定的数据目录所在分区有至少10GB的空闲空间。 - 如果空间不足,直接在AWS控制台扩容EC2的EBS卷即可。
内容的提问来源于stack exchange,提问作者Reiec
相关产品推荐
相关产品推荐

