我们在 SQ 上分析的 Java 文件包含自动生成的代码块。这样的块以
// @UKA_GENERATION_START@
并以
// @UKA_GENERATION_END@
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>\/\/ @UKA_GENERATION_START@</sonar.issue.ignore.block.e1.beginBlockRegexp>
<sonar.issue.ignore.block.e1.endBlockRegexp>\/\/ @UKA_GENERATION_END@</sonar.issue.ignore.block.e1.endBlockRegexp>
(匹配上述字符串的正则表达式)。
不幸的是,SQ 不排除分析之间的代码// @UKA_GENERATION_START@
块// @UKA_GENERATION_END@
!你有什么想法,为什么?