デフォルトでは、DTP は異なるブランチの違反を「異なる違反」と見なします。同じラン コンフィギュレーションで複数のブランチに対して静的解析を実行した場合、同じ違反が新規違反としてビルドをまたがってレポートされます。その結果、変更を表示するウィジェット ( 違反 - 傾向 ウィジェット や 違反 - 変更済み ウィジェット) に不正確な情報が表示されます。
variables ファイル (拡張子なし) で JAVA_MEM に以下の JVM 引数を設定することで、この静的解析の設定を変更できます。variables ファイルは <DTP_HOME>/bin ディレクトリにあります。
-Ddtp.widgets.compareViolationsAcrossBranches=true
この設定が true の場合、DTP は異なるブランチの違反を「同じ違反」と見なします。
具体例
以下は、静的解析の設定がデフォルトの場合の例です。
- マスター ブランチ (ビルド A) に対して静的解析を実行します。
- 翌日のビルド (ビルド B) のために、マスター ブランチからリリース ブランチを作成し、静的解析を実行します。
- 両方のビルドで、Foo.java に静的解析違反が発見されました。ビルド A とビルド B の違反で異なるのは、ソース コードのブランチが違う点だけです。
- マスター ブランチのビルド A: Foo.java で違反 1
- リリース ブランチのビルド B: Foo.java で違反 1
- ビルド A に対してビルド B を比較すると、違反 - 傾向 ウィジェットと 違反 - 変更済み ウィジェットでは、ビルド A の違反 1 が「修正済み」として、そしてビルド B の違反 1 が「新規」として表示されます。
上記で説明した静的解析の設定を変更すれば、ビルド A に対してビルド B を比較した際に、これらのウィジェットでビルド B の違反 1 は「新規」ではなく「既存の違反」としてレポートされます。