2016-04-13 76 views
1

我們在SQ上分析的Java文件包含自動生成的代碼塊。這樣的塊與忽略塊中的問題

// @[email protected] 

開始,並在它們之間

// @[email protected] 

代碼線應該由SQ被忽略結束。

站點http://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus在「忽略塊中的問題」一章中描述瞭如何完成。應該使用參數sonar.issue.ignore.block

在我們的環境中,我們使用Maven進行項目構建和分析。在項目的POM中,我們設置了以下參數:

<sonar.issue.ignore.block>e1</sonar.issue.ignore.block> 
<sonar.issue.ignore.block.e1.beginBlockRegexp>\/\/ @[email protected]</sonar.issue.ignore.block.e1.beginBlockRegexp> 
<sonar.issue.ignore.block.e1.endBlockRegexp>\/\/ @[email protected]</sonar.issue.ignore.block.e1.endBlockRegexp>     

(與上述字符串匹配的正則表達式)。

不幸的是,SQ不會從分析中排除// @[email protected]// @[email protected]之間的代碼塊! 你有什麼想法,爲什麼?

回答

0

您需要在UI中設置它,而不是在參數中。文檔中已經有關於此的警告,但我已經更明顯了。

+0

它似乎工作良好,通過將這些值設置爲參數,而不是在UI中,但在命令行上。 – dokaspar

0

如何通過忽略//字符來簡化您的正則表達式?下面的配置應該工作完全正常:

sonar.issue.ignore.block=e1 
[email protected][email protected] 
[email protected][email protected] 

如上配置,開始和結束標記之間的問題會被忽略

// @[email protected] 

System.out.println("Hello world!"); 

// @[email protected] 

或者是再詳細...在下面的例子中,行1和5會提高聲納問題,而2 - 4行將被忽略:

1: System.out.println("Hello world!"); 
2: System.out.println("Hello world!"); // @[email protected] 
3: System.out.println("Hello world!"); 
4: System.out.println("Hello world!"); // @[email protected] 
5: System.out.println("Hello world!");