【问题标题】:Sonarqube Doesn't Mark Violations from Custom Rules PluginSonarqube 不会标记自定义规则插件中的违规行为
【发布时间】:2018-03-13 21:34:28
【问题描述】:

几周以来,我一直在尝试让 sonarqube 与自定义插件一起工作,但遇到了多个死胡同。我正在使用this example。如果我理解正确,我所要做的就是在目录上mvn clean package,然后将生成的 jar 复制到 /etc/sonarqube/extensions/plugins/ 中。当我这样做时,sonarqube 服务器会识别新规则(包括下面的快照)。

添加插件前:

添加插件后:

似乎声纳扫描仪也可以识别插件,因为每当我将 jar 移动到插件目录后第一次运行扫描仪时,我都会看到以下输出。您会注意到最后一行有扫描仪“下载”自定义规则 jar。

INFO: Scanner configuration file: /usr/local/Cellar/sonar-scanner/3.0.3.778/libexec/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 3.0.3.778 INFO: Java 1.8.0_144 Oracle Corporation (64-bit) INFO: Mac OS X 10.12.6 x86_64 INFO: User cache: /Users/jareddembrun/.sonar/cache INFO: Load global settings INFO: Load global settings (done) | time=104ms INFO: User cache: /Users/jareddembrun/.sonar/cache INFO: Load plugins index INFO: Load plugins index (done) | time=10ms INFO: Download java-custom-rules-1.0-SNAPSHOT.jar

我在单个 java 文件上运行它。由于其中一条规则(称为 MyCustomSubscriptionRule 的规则)似乎是在检查没有任何方法只采用一个参数并返回与该参数相同类型的东西,因此我在我的 java 文件中执行此操作:

public class HelloWorld
{
    public static void main(String args[])
    {
        String x = echo("Hello World");
        System.out.println(x);
    }

    private static String echo(String in)
    {
        return in;
    }
}

当我运行扫描时,它实际上会分析文件,并返回三个其他“代码气味”,我可以在 web 应用程序中看到它们:

但是,如您所见,这些都不是自定义规则。我在这里缺少一些步骤吗?我不明白自定义规则在做什么吗?对于 javascript 和 java 检查器,我已经用尽了很多不同的路线。一切似乎都是死胡同。非常感谢您对此提供任何帮助。

【问题讨论】:

  • 您是否将自定义规则添加到用于分析您的项目的quality profile
  • 我没有。我不明白这个文档。我要添加什么以及添加到哪些文件?我尝试进行批量更改,但我无法使用它,因为该字段出现“未找到匹配项”,即使我开始输入 Java 也是如此。如果我尝试将它应用于“Java”,它会告诉我“targetProfile”参数丢失。如何找到给定配置文件的 targetProfile 参数?

标签: java sonarqube


【解决方案1】:

必须将规则添加到质量配置文件中。转到 sonarqube webapp 上的质量配置文件。在右上角登录(user=admin,pass=admin,默认),点击右上角的“create”,新建一个profile。

创建新配置文件后,您可以将其作为子项添加到您关注的语言的默认配置文件中。然后,也将其添加到项目中(您只需将其添加到项目中即可完成此工作)。转到您关注的规则并在新配置文件中激活它。重新运行扫描,您应该会看到该规则已按预期提出问题。

【讨论】:

    猜你喜欢
    • 2014-04-22
    • 2016-02-12
    • 2014-07-19
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2016-12-22
    相关资源
    最近更新 更多