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

如何在Jenkins Job DSL中调用OWASP Dependency-Check?

在Jenkins Job DSL中调用OWASP Dependency-Check

实现流程

1. 执行Dependency-Check扫描

你可以通过两种方式在Job DSL中触发扫描:

方式一:调用命令行工具

如果Jenkins节点已安装Dependency-Check并配置好环境变量,直接用shell步骤执行扫描命令:

job('dc-scan-job') {
  steps {
    shell '''
      dependency-check.sh --scan ./your-project-root \
                          --format HTML \
                          --out ./dc-report
    '''
  }
}

方式二:使用插件构建步骤

依赖Jenkins的OWASP Dependency-Check Plugin,直接用DSL提供的dependencyCheckBuilder步骤:

job('dc-scan-job') {
  steps {
    dependencyCheckBuilder {
      scanPath('./your-project-root') // 指定要扫描的目录
      format('HTML') // 生成的报告格式,支持HTML、JSON等
      outputDirectory('./dc-report') // 报告输出目录
      // 可选:指定自定义配置文件
      // configFile('./dependency-check.properties')
    }
  }
}

2. 发布扫描结果

结合你找到的结果发布DSL,把扫描报告集成到Jenkins任务中,还可设置漏洞阈值控制构建状态:

job('dc-scan-job') {
  publishers {
    // 发布HTML报告,方便在Jenkins中查看
    publishHtml {
      report('dc-report/dependency-check-report.html') {
        reportName('OWASP Dependency-Check 扫描报告')
        keepAll() // 保留所有历史报告
      }
    }

    // 配置漏洞阈值,触发构建失败
    dependencyCheck {
      pattern('dc-report/dependency-check-report.html')
      failedTotalHigh(1) // 高危漏洞数量≥1时构建失败
      failedTotalMedium(5) // 中危漏洞数量≥5时构建失败
      failedTotalLow(10) // 低危漏洞数量≥10时构建失败
    }
  }
}

完整整合示例

将扫描和结果发布合并到一个Job DSL中:

job('full-dependency-check-job') {
  steps {
    dependencyCheckBuilder {
      scanPath('./src')
      format(['HTML', 'JSON']) // 同时生成HTML和JSON格式报告
      outputDirectory('./dc-results')
    }
  }

  publishers {
    publishHtml {
      report('dc-results/dependency-check-report.html') {
        reportName('OWASP Dependency-Check 扫描报告')
        keepAll()
      }
    }

    dependencyCheck {
      pattern('dc-results/dependency-check-report.html')
      failedTotalHigh(0) // 发现高危漏洞直接标记构建失败
      failedTotalMedium(3)
      failedTotalLow(10)
    }
  }
}

关键注意事项

  • 确保Jenkins已安装Job DSL Plugin和OWASP Dependency-Check Plugin
  • 使用命令行方式时,需保证Jenkins节点上的Dependency-Check工具可全局调用
  • 扫描路径、报告格式、阈值参数可根据项目实际需求调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:01:11