使用 OWASP dependencyCheck 为 java 个模块生成单独的报告而不是一份大报告

Using the OWASP dependencyCheck to generate separate reports for java modules instead of one large report

我试图将我的 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 文件。
资料来源:dependecy check could not analyze pom.xml for java