デフォルトでは、DTP は異なるブランチの違反を「異なる違反」と見なします。同じラン コンフィギュレーションで複数のブランチに対して静的解析を実行した場合、同じ違反が新規違反としてビルドをまたがってレポートされます。その結果、変更を表示するウィジェット ([違反 - 傾向] ウィジェットや [違反 - 変更済み] ウィジェット) に不正確な情報が表示されます。

variables ファイル (拡張子なし) で以下の JVM 引数を設定することで、この静的解析の設定を変更できます。このファイルにはファイル拡張子はありません。variables ファイルは <DTP_INSTALL>/bin ディレクトリにあります。

Linux の例
JAVA_MEM -Ddtp.widgets.compareViolationsAcrossBranches=true 
Windows の例
DTP_JAVA_OPTS -Ddtp.widgets.compareViolationsAcrossBranches=true  
# または 
DC_JAVA_OPTS -Ddtp.widgets.compareViolationsAcrossBranches=true

この設定が true の場合、DTP は異なるブランチの違反を「同じ違反」と見なします。 

具体例

以下は、静的解析の設定がデフォルトの場合の例です。

  1. マスター ブランチ (ビルド A) に対して静的解析を実行します。
  2. 翌日のビルド (ビルド B) のために、マスター ブランチからリリース ブランチを作成し、静的解析を実行します。
  3. 両方のビルドで、Foo.java に静的解析違反が発見されました。ビルド A とビルド B の違反で異なるのは、ソース コードのブランチが違う点だけです。
    • マスター ブランチのビルド A:  Foo.java で違反 1
    • リリース ブランチのビルド B:  Foo.java で違反 1
  4. ビルド A に対してビルド B を比較すると、[違反 - 傾向] ウィジェットと [違反 - 変更済み] ウィジェットは、ビルド A の違反 1 を「修正済み」として表示し、ビルド B の違反 1 を「新規」として表示します。

上記で説明した静的解析の設定を変更すれば、ビルド A に対してビルド B を比較した際、これらのウィジェットでビルド B の違反 1 は「新規」ではなく「既存の違反」としてレポートされます。

  • No labels