0

我的项目是相当小的 C 项目。从命令行运行sourceanalyzer将在大约 3 分钟内完成翻译和扫描。

文档说如果 .fpr 是从命令行生成的并且我需要从 AWB 重新扫描,则更新项目翻译按钮是灰色的(它是)。但是如果我修改源代码,文档说我必须先更新翻译才能重新扫描代码,这意味着我必须再次从命令行运行sourceanalyzer(因为该选项在 AWB 中是灰色的。)但是,使用sourceanalyzer会重写 .fpr,这意味着我会丢失在 AWB 中创建的所有审核和自定义过滤器。

问题 1:我能否从命令行运行sourceanalyzer进行翻译和扫描,而不会丢失我在 AWB 中创建的审计工作和自定义过滤器?

下一个合乎逻辑的步骤似乎是从 AWB 创建 .fpr。但是,如果我尝试使用 AWB 使用Advanced Scan...启动一个新项目,则需要一个多小时才能完成生成中间文件 - JtsWrapper.java步骤。完成后,结果显示 0 个问题。

问题2:如何使用AWB在不使用Java的C项目上启动新项目?当我选择Start New Project -> Advanced Scan时,它会询问 Java 版本。这是否意味着它认为我的项目是 Java 项目?

这就是我使用sourceanalyzer的方式:

sourceanalyzer -clean

sourceanalyzer -64 -b myproj \
           -build-label myproj \
           -build-project myproj \
           -build-version 1.0.0 \
            touchless make -j6 -k 

sourceanalyzer -64 -b myproj \
             -build-label myproj \
             -build-project myproj \
             -build-version 1.0.0 \
             -scan \
             -f myproj.fpr
4

1 回答 1

1

问题1)

创建新扫描时,有两个选项可用于保留以前/现有的评论、审核和过滤器。

a) 如果您再次扫描并让 -f 指向您现有的已修改的 .fpr 文件,sourceanalyzer则会自动将新结果合并到该 .fpr 中。

b)有一个命令行实用程序可以将两个文件合并在一起:

fprutility -merge -project <old.fpr> -source <new.fpr> -f <merged.fpr>

当您说“下一个合乎逻辑的步骤似乎是从 AWB 创建 .fpr”时。我不同意。能够在命令行生成扫描使该过程可重复且可自动化。AWB 和 IDE 插件都是sourceanalyzer.exe.

问题2)

我不确定您使用的是哪个版本的 Fortify SCA,但是当我将高级扫描指向 c++ 示例项目 ( <HPE Fortify Install Dir>/Samples/Basic/cpp) 时,我没有被询问 Java 版本(我使用的是 16.10 版)。

关于命令行参数的几件事:

  • -64现在自动为多个版本(不确定何时进行切换)
  • -build-label myproj是可选的
  • -build-project myproj是可选的
  • -build-version 1.0.0是可选的
于 2016-05-27T01:31:32.090 回答