0

私のプロジェクトはかなり小さな C プロジェクトです。コマンド ラインからsourceanalyzerを実行すると、翻訳とスキャンの両方で約 3 分で終了します。

ドキュメントによると、.fpr がコマンド ラインから生成されたもので、AWB から再スキャンする必要がある場合、 [プロジェクトの翻訳を更新] ボタンはグレー表示されます (これはそうです)。しかし、ソース コードを変更した場合、ドキュメントには、コードを再スキャンする前にまず翻訳を更新する必要があると記載されています。つまり、コマンド ラインからsourceanalyzerを再度実行する必要があります (AWB ではオプションがグレー表示されているため)。ただし、sourceanalyzer を使用すると .fpr が書き換えられるため、AWB で作成したすべての監査とカスタム フィルターが失われます

質問 1:コマンド ラインからsourceanalyzerを実行して、AWB で作成した監査作業とカスタム フィルターを失うことなく、変換とスキャンの両方を実行できますか?

次の論理的なステップは、AWB から .fpr を作成することのようです。しかし、AWB を使用してAdvanced Scan...を使用して新しいプロジェクトを開始しようとすると、中間ファイルの生成 - JtsWrapper.java の手順を完了するのに 1 時間以上かかります。完了すると、結果に 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)

新しいスキャンを作成するときに、以前/既存のコメント、監査、およびフィルターを保持するための 2 つのオプションがあります。

a) 2 回目のスキャンで、-f が変更を含む既存の .fpr ファイルを指している場合sourceanalyzer、新しい結果がその .fpr に自動的にマージされます。

b) 2 つのファイルをマージするためのコマンドライン ユーティリティがあります。

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 に答える