3

我在 build.gradle 中使用以下配置来运行 HP Fortify 扫描:

// Fortify configuration
configurations {
  fortify { extendsFrom compile }
}

// pull in the fortify libs for the new configuration
dependencies {
  fortify 'com.fortify:sourceanalyzer:3.90'
}

task fortifyReport(dependsOn: compileJava) << {
  ant.properties['build.compiler']='com.fortify.dev.ant.SCACompiler'
  ant.typedef(name: 'sca', classname: 'com.fortify.dev.ant.SourceanalyzerTask', classpath: configurations.fortify.asPath)
  ant.sca(jdk:"1.7",
    debug:true ,
    verbose:true ,
    failonerror:true ,
    scan:true ,
    logFile:file("$buildDir/reports/fortify/Fortify.log"),
    resultsFile:file("$buildDir/reports/fortify/${project.name}.fpr")
  ){
    fileset(dir:'src/main') {
      include(name:'**/*.java')
    }
  }
}

但是在执行时我得到以下信息:

* What went wrong:
Execution failed for task ':fortifyReport'.
> Could not resolve all dependencies for configuration 'detachedConfiguration157'.
> Could not find com.fortify:sourceanalyzer:3.90.

我无法在互联网上找到 sourceanalyzer:3.90 插件。请告知如何解决此问题。

4

1 回答 1

5

从 SCA 16.20 开始,现在支持 Gradle 集成。

来自官方文档HPE Security Fortify Static Code Analyzer User Guide - Chapter 13: Build Integration

Gradle 集成

您可以翻译使用 Gradle 构建的项目,而无需对build.gradle文件进行任何修改。当构建运行时,Fortify 静态代码分析器会在编译源文件时对其进行翻译。有关 Gradle 集成专门支持的平台和语言,请参阅 HPE Security Fortify 软件系统要求文档。项目中使用 Gradle 集成不受支持的语言的任何文件都不会被翻译(没有错误报告)。因此,这些文件不会被分析,任何现有的潜在漏洞都可能未被检测到。

要将 Fortify 静态代码分析器集成到您的 Gradle 构建中,请确保sourceanalyzer可执行文件位于系统 PATH 上。在 Gradle 命令行前添加sourceanalyzer如下命令:

sourceanalyzer -b <build_id> <sca_options> gradle [<gradle_options>] <gradle tasks>

例如:

sourceanalyzer -b buildxyz gradle clean build
sourceanalyzer -b buildxyz gradle --info assemble

注意:如果您使用 Fortify 静态代码分析器-verbose选项,那么您还必须包含该-gradle选项。例如:

sourceanalyzer -b buildxyz -gradle -verbose gradle assemble
于 2017-01-08T16:01:45.493 回答