java - 此 Sonar 规则未触发

标签 java sonarqube sonarlint

我刚刚安装了最新版本的 SonarLint,并对新学员的代码启动了完整的 SonarLint 分析,新学员已将一些非静态非注入(inject)成员放入 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中激活?

最佳答案

正如你直觉所想,规则 squid:S3749默认情况下不是质量配置文件的一部分(通常称为 SonarWay)。因此,如果没有正确的配置,它不会通过全新安装的 SonarLint 来执行。

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

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

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

关于java - 此 Sonar 规则未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56973360/

相关文章:

linux - 如何在服务器上部署 Sonar + Jenkins

intellij-idea - 如何从用于 IntelliJ IDEA 的 SonarLint 中的即时分析中排除 JS 文件?

java - 通过单击网站按钮打开 android 应用程序?

gradle - 如何使用新的 Gradle SonarQube 插件向 Sonar 报告 Jacoco Groovy 代码覆盖率?

java - TimSort 违规

github - 有没有办法将SonarQube的覆盖范围作为图标嵌入到Github项目中?

swift - 使用自定义 swiftlint .yml 文件运行 sonar-swift.sh

javascript - SonarQube 无法识别 String.prototype 方法

java - JQuery 数据表隐藏列

java - Jackson 与泛型 JSON 无法构造 java.lang.Class 的实例