デフォルトでは、DTP は異なるブランチの違反を「異なる違反」と見なします。同じラン コンフィギュレーションで複数のブランチに対して静的解析を実行した場合、同じ違反が新規違反としてビルドをまたがってレポートされます。その結果、変更を表示するウィジェット ([違反 - 傾向] ウィジェットや [違反 - 変更済み] ウィジェット) に不正確な情報が表示されます。
variables ファイル (拡張子なし) で以下の JVM 引数を設定することで、この静的解析の設定を変更できます。このファイルにはファイル拡張子はありません。このファイルは <DTP_INSTALL>/bin
ディレクトリにあります。
Linux の例
JAVA_MEM -Ddtp.widgets.compareViolationsAcrossBranches=true
Windows の例
DTP_JAVA_OPTS -Ddtp.widgets.compareViolationsAcrossBranches=true # or DC_JAVA_OPTS -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 は「新規」ではなく「既存の違反」としてレポートされます。