使用 OWASP 依赖关系检查为 java 模块生成单独的报告,而不是一个大型报告



我正在尝试将我的 Jenkins CI 管道生成的依赖项检查报告分解为多个报告(每个模块一个(,因为拥有一个巨大的报告可能会变得相当大且难以阅读。 这是我到目前为止完成此操作的代码:

if(fileExists('pom.xml')) {
def pom = readMavenPom file: 'pom.xml'
pom.modules.each {
dependencyCheck additionalArguments: "--scan ./${it} --format CSV --out owasp-reports/${it}-dependency-check-report.csv", odcInstallation: "${env.DEPENDENCY_CHECK}"
dependencyCheck additionalArguments: "--scan ./${it} --format JSON --out owasp-reports/${it}-dependency-check-report.json", odcInstallation: "${env.DEPENDENCY_CHECK}"
dependencyCheck additionalArguments: "--scan ./${it} --format HTML --out owasp-reports/${it}-dependency-check-report.html", odcInstallation: "${env.DEPENDENCY_CHECK}"
}

我正在获取使用适当名称生成的文件,但没有扫描依赖项。 但是,这会适当地生成包含所有子模块的大型报表

dependencyCheck additionalArguments: '--scan ./ --format XML --format JSON --format HTML --format CSV --out owasp-reports', odcInstallation: "${env.DEPENDENCY_CHECK}"

任何建议将不胜感激。

对于其他任何人,这可能会有所帮助,这就是我想出的解决方案:

if(fileExists('pom.xml')) {
def pom = readMavenPom file: 'pom.xml'
pom.modules.each {
dir("${it}"){
sh "mvn org.owasp:dependency-check-maven:aggregate"
sh "mv target/dependency-check-report.html ../owasp-reports/${it}-dependency-check-report.html"
}
}
}

显然,使用 Jenkins 插件调用的问题在于 Jenkins 插件包装了 CLI 命令,这些命令无法识别 pom 文件。
来源:依赖关系检查无法分析pom.xml for java

最新更新