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

如何在CI流水线中缓存OWASP Dependency Check的NVD数据库

在Maven/Gradle CI流水线中缓存OWASP Dependency Check的NVD数据库

OWASP Dependency Check每次运行都重新下载NVD数据库确实会拖慢CI速度,下面针对Maven和Gradle分别给出缓存方案:

Maven 项目

1. 插件配置(可选但推荐)

在pom.xml里给Dependency Check插件指定固定的数据库存储路径,方便CI工具精准缓存:

<plugin>
    <groupId>org.owasp</groupId>
    <artifactId>dependency-check-maven</artifactId>
    <version>最新版本号</version>
    <configuration>
        <!-- 指定自定义数据库存储目录 -->
        <dataDirectory>${user.home}/.owasp-dependency-check-data</dataDirectory>
        <!-- 开启增量更新,减少后续下载量 -->
        <autoUpdate>true</autoUpdate>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2. CI流水线缓存配置

以主流CI工具为例:

  • GitHub Actions:在工作流配置文件中添加缓存步骤
- name: Cache OWASP Dependency Check Database
  uses: actions/cache@v3
  with:
    path: ~/.owasp-dependency-check-data
    key: ${{ runner.os }}-owasp-db-${{ hashFiles('pom.xml') }}
    # 当key不匹配时,回退到最近的有效缓存
    restore-keys: |
      ${{ runner.os }}-owasp-db-
  • GitLab CI:在.gitlab-ci.yml中配置缓存规则
cache:
  paths:
    - ~/.owasp-dependency-check-data/
  key:
    files:
      - pom.xml
    prefix: $CI_RUNNER_OS-owasp-db

Gradle 项目

1. 插件配置(可选但推荐)

在build.gradle或build.gradle.kts中指定数据库存储路径:

plugins {
    id 'org.owasp.dependencycheck' version '最新版本号'
}

dependencyCheck {
    // 指定自定义数据库存储目录
    dataDir = file("${System.getProperty('user.home')}/.owasp-dependency-check-data")
    // 开启自动增量更新
    autoUpdate = true
}

2. CI流水线缓存配置

  • GitHub Actions:
- name: Cache OWASP Dependency Check Database
  uses: actions/cache@v3
  with:
    path: ~/.owasp-dependency-check-data
    key: ${{ runner.os }}-owasp-db-${{ hashFiles('build.gradle', 'build.gradle.kts') }}
    restore-keys: |
      ${{ runner.os }}-owasp-db-
  • GitLab CI:
cache:
  paths:
    - ~/.owasp-dependency-check-data/
  key:
    files:
      - build.gradle
      - build.gradle.kts
    prefix: $CI_RUNNER_OS-owasp-db

注意事项

  • 缓存key中加入项目配置文件的哈希值,能在插件版本更新时自动触发新缓存生成,避免使用过期数据库
  • 开启autoUpdate后,每次运行只会下载增量更新,配合缓存能最大化减少耗时
  • 如果CI环境使用容器化部署,要确保缓存目录挂载到了容器的持久化存储中

内容的提问来源于stack exchange,提问作者Miguel Suarez Peleteiro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:01:21