此声纳规则未触发

时间:2019-07-10 14:51:24

标签: java sonarqube sonarlint

我刚刚安装了最新版本的SonarLint,并针对我们的新学员的代码启动了完整的SonarLint分析,该学员将一些非静态的非注入成员放入Spring单例中,就像在此示例中一样:

@Controller
public class HelloWorld {

  private String name = null;

  @RequestMapping("/greet", method = GET)
  public String greet(String greetee) {

    if (greetee != null) {
      this.name = greetee;
    }

    return "Hello " + this.name;  // if greetee is null, you see the previous user's data
  }
}

https://rules.sonarsource.com/java/tag/spring/RSPEC-3749

所以我希望SonarLint能够检测到它,但是没有(我有其他建议,但对此一无所知)。

这条规则是否是特殊集的一部分,需要在某个位置的conf中激活?

1 个答案:

答案 0 :(得分:3)

您直觉上认为,规则squid:S3749在默认情况下不是质量配置文件的一部分(通常称为 SonarWay )。因此,如果没有适当的配置,它将不会与SonarLint的全新安装一起执行。

从那里,您有两个选择来启用规则:

  • 将SonarLint连接到SonarQube实例或SonarCloud,这将允许您自动配置和同步所有项目的质量配置文件,执行每个项目所需的规则
  • 使用SonarLint的最新版本(我尝试使用Eclipse的4.1版),您应该能够直接通过插件配置启用规则,但是不会与其他从事该项目的人共享。

请注意,不幸的是,https://rules.sonarsource.com/当前无法查看有关质量概况的信息(我现在正在进行内部反馈,以便将来解决此问题)