You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OWASP Dependency Check Maven插件中分离CVE库更新与扫描

分离OWASP依赖检查的数据库更新与扫描任务

1. 配置每日定时更新CVE数据库的Jenkins任务

新建一个Jenkins任务,设置每日低峰时段定时触发(比如凌晨2点),执行以下Maven命令:

mvn org.owasp:dependency-check-maven:7.4.4:update-only -DdataDirectory=/var/jenkins/shared-dependency-check-db
  • 该命令仅执行CVE数据库更新操作,不会触发依赖漏洞扫描
  • -DdataDirectory指定共享的数据库存储路径,确保更新和扫描任务能访问同一数据库(若Jenkins以同一用户运行,可省略此参数,默认使用用户目录下的.dependency-check目录,但指定共享路径更稳定)

2. 修改扫描任务,跳过数据库更新

在原有的扫描命令中添加跳过更新的参数,让扫描直接使用已更新好的数据库:

mvn clean verify -U -Dowasp=true -DskipTests -Ddependency-check.skipUpdate=true -DdataDirectory=/var/jenkins/shared-dependency-check-db
  • -Ddependency-check.skipUpdate=true强制跳过数据库更新步骤,避免扫描时因更新失败导致任务中断
  • 必须和更新任务使用相同的dataDirectory路径,保证扫描用的是最新的CVE数据

可选:优化pom.xml配置(简化命令)

如果不想每次命令都带路径参数,可以在OWASP插件的配置里固定数据库路径,同时保留命令行覆盖的灵活性:

<plugin>
  <groupId>org.owasp</groupId>
  <artifactId>dependency-check-maven</artifactId>
  <version>7.4.4</version>
  <configuration>
    <skipProvidedScope>true</skipProvidedScope>
    <skipRuntimeScope>true</skipRuntimeScope>
    <failBuildOnCVSS>7</failBuildOnCVSS>
    <!-- 配置共享数据库路径 -->
    <dataDirectory>/var/jenkins/shared-dependency-check-db</dataDirectory>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>

之后更新任务的命令可简化为:

mvn org.owasp:dependency-check-maven:7.4.4:update-only

扫描任务的命令可简化为:

mvn clean verify -U -Dowasp=true -DskipTests -Ddependency-check.skipUpdate=true

拆分后,更新任务失败仅影响CVE数据库的时效性,不会阻断正常扫描流程;扫描任务失败则明确是项目依赖漏洞或扫描环节的问题,方便快速定位故障原因。

内容的提问来源于stack exchange,提问作者not2savvy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:33:17