2016-06-29 52 views
4

我试图根据具有自定义注释的文件@ExcludeLombok从Sonar分析中忽略Lombok代码(生成的代码)。 我试过this guide哪个没有用。Sonar - 通过自定义注释忽略龙目岛代码

事实上,我甚至尝试从分析中排除整个目录,它仍然无法工作。

我也不知疲倦地通过StackOverflow寻找解决方案,我已经看到这已经在这里讨论了很多,但我已经看到人们一直在建议编写一个单一的测试来获得因为我们不应该测试自动生成的代码,所以这是毫无意义的。

我在寻找的解决方案是基于自定义注释排除文件。 但到目前为止,我试图排除的任何内容都不会被排除。

任何帮助将不胜感激。

+0

如果不满足您的要求,您可以接受我的回答或至少对其进行评论吗? –

+0

道歉为延迟接受你的回应迈克尔,听起来不错:) –

回答

4

除了使用您引用的“Narrowing the focus”文档中描述的方法外,目前没有简单的方法可以排除SonarQube Java分析器中SonarQube规则引发的问题。

现在,我们最近在SonarQube Java分析器中介绍了问题过滤器的概念。该机制目前仅用于在分析时根据具体标准排除规则引发的问题。

我们计划扩展此机制,以便允许用户实现自己的自定义问题过滤器,这与自定义规则可以实现的方式相同。这种方法将覆盖您的案例,并允许您过滤使用自定义注释注释的代码的任何规则。这个新功能将在以下JIRA机票中处理:SONARJAVA-1761

+0

任何更新的问题? – cra6

+0

请参考JIRA门票[SONARJAVA-1761](https://jira.sonarsource.com/browse/SONARJAVA-1761)解决问题。该票目前计划用于SonarJava分析仪的5.x。我们目前正在开发4.8版本。版本5.x将成为我们的下一个主要版本,但在今年夏天之前预计不会发布。 –

+1

@ Michael-SonarSourceTeam现在看起来过滤机制确实存在,代码中有一个LombokFilter:https://github.com/SonarSource/sonar-java/tree/master/java-checks/src/main/ java/org/sonar/java/filters但是对于Sonar 6.3,仍然不会过滤lombok问题。 – Chris

0

您拥有的另一个选项是将Sonar运行在已删除的源代码上。根据您的构建系统,可以采用多种方式去屏蔽。请参阅: Delombok Overview

Maven的有上delomboked运行的代码分析的例子:Delombok test pom

在每一种情况下,你要确保你跑过去产生源的检查。

+0

这是否删除git blame,因为delomboked的源代码没有git推送 – user3709525