我的项目是一个相当小的C项目。从命令行运行 sourceanalyzer 可在大约3分钟内完成翻译和扫描。
文档说如果.fpr是从命令行生成的,我需要从AWB重新扫描,更新项目翻译按钮是灰色的(就是这样)。但是如果我修改源代码,文档说我必须先重新更新翻译才能重新扫描代码,这意味着我必须再次从命令行运行 sourceanalyzer (因为选项是在AWB中显示灰色。)但是,使用 sourceanalyzer 重写.fpr,这意味着我丢失了我在AWB中创建的所有审核和自定义过滤器。
问题1:我是否可以从命令行运行 sourceanalyzer 进行翻译和扫描,而不会丢失我在AWB中创建的审计工作和自定义过滤器?
下一个合乎逻辑的步骤似乎是从AWB创建.fpr。但是,如果我尝试使用AWB使用高级扫描... 启动新项目,则需要一个多小时才能完成生成中间文件 - JtsWrapper.java 步骤。完成后,结果显示0个问题。
问题2:如何使用AWB在不使用Java的C项目上启动新项目?当我选择开始新项目 - >高级扫描,它要求提供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
答案 0 :(得分:1)
问题1)
创建新扫描时,有两种方法可以保留以前/现有的注释,审核和过滤器。
a)如果您再次扫描并且-f指向具有修改的现有.fpr文件,sourceanalyzer
将自动将新结果合并到.fpr中。
b)有一个命令行实用程序可以将两个文件合并在一起:
fprutility -merge -project <old.fpr> -source <new.fpr> -f <merged.fpr>
当你说,&#34;下一个合乎逻辑的步骤似乎是从AWB创建.fpr。&#34;我不同意。能够在命令行生成扫描使该过程可重复且可自动化。 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
是可选的