ソナーcpdが重複ブロックを検出する方法について多くの分析を行いました.しかし、コードのブロックまたは行を検出するために必要なプロセスを正確にトリガーすることはできません.最小行数を設定してください.
たとえば、次のように書いている場合、20回以上繰り返してもコードの重複は検出されません。
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
System.out.println("this is good");
後でブロックを複製してみました
try
{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
try
{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
try{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
try{
connection = null;
}
catch(Exception e){
e.printStackTrace();
}
ここでは多くのブロックを持っていますが、2 つのブロックとして考えています。
ソナー 3.4.1 によるこの重複検出の正確なプロセスを教えてください。
この http://docs.sonarsource.org/3.1/apidocs/src-html/org/sonar/plugins/cpd/SonarEngine.htmlで
一定のブロック サイズが 10 であることがわかりました。しかし、私の観察ではこれを関連付けることができます。