将Fortify与MSBuild结合使用时如何排除文件和文件夹

时间:2018-11-28 07:05:38

标签: fortify

我使用以下命令使用msbuild“翻译”我的源代码:

sourceanalyzer -b sample -exclude "**/*.xml" "**/Test/**" msbuild sample.sln /maxcpucount:1

完成此操作后,我使用以下方法分析源代码:

sourceanalyzer -b sample -scan -f result.fpr

sample.sln解决方案也包含许多测试项目。这些项目产生了很多我不感兴趣的发现。如何排除这些项目?它们都在“测试”子文件夹中。我尝试过–exclude开关时没有运气。我想用msbuild编译时会被忽略。

分析器还会为第三方库随附的xml文件生成发现结果。这很有趣,但是我不想在报告中包含它们。排除在这里也不起作用。

1 个答案:

答案 0 :(得分:1)

这是Fortify的官方文档(版本17.10起):

文件说明符是使您可以使用通配符将一长串文件传递给Fortify Static Code Analyzer的表达式。 Fortify静态代码分析器可识别两种类型的通配符:单个星号字符()匹配文件名的一部分,而双星号字符(**)递归地匹配目录。您可以指定一个或多个文件,一个或多个文件说明符,或文件和文件说明符的组合。*

<files> | <file specifiers>

下表描述了不同的文件说明符形式:

  • dirname:在命名目录或任何子目录中找到的所有文件。
  • dirname / ** / Example.java:在命名目录或任何子目录中找到任何名为Example.java的文件。
  • dirname / *。java:在命名目录中找到任何扩展名为.java的文件。
  • dirname / ** / *。java:在命名目录或任何子目录中找到任何扩展名为.java的文件。
  • / ** / *:在命名目录或任何子目录中找到的所有文件(与相同)。

注意:Windows和许多Unix shell会自动扩展包含星号()的参数,因此必须将文件说明符括在引号中。另外,在Windows上,可以将反斜杠字符()用作目录分隔符,而不要使用正斜杠(/)。*

文件说明符不适用于C,C ++或Objective-C ++语言。

根据上述文档,您必须传递所有“ Test”子文件夹路径:

-exclude path1/**/*|path2/**/*|etc..

,但是最后一个文档行说C / C ++ / ObjectiveC ++不支持它。