繁体   English   中英

Sonarqube不会标记来自“自定义规则”插件的违规行为

[英]Sonarqube Doesn't Mark Violations from Custom Rules Plugin

我已经尝试了几个星期,以使声纳波能够与自定义插件一起使用,并且遇到了很多死胡同。 我正在使用这个例子 如果我理解正确,那么我要做的就是在目录上使用mvn clean package ,然后将生成的jar复制到/ etc / sonarqube / extensions / plugins /中。 当我这样做时,声纳服务器会识别新规则(包括下面的快照)。

在添加插件之前: 之前

添加插件后: 后

似乎声纳扫描仪也能识别插件,因为将罐子移到plugins目录后,每当我第一次运行扫描仪时,我都会看到以下内容作为输出。 您会注意到,此程序的最后一行是扫描程序“正在下载”自定义规则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;
    }
}

当我运行扫描时,它实际上会分析文件,并返回其他三个“代码味道”,我可以在网络应用程序中看到它们: 在此处输入图片说明

但是,您可以看到,这些都不是自定义规则。 我在这里错过了一些步骤吗? 我是否不了解自定义规则的作用? 我已经用尽了很多不同的路线,包括javascript和Java检查器。 一切似乎都是死胡同。 在这方面的任何帮助将不胜感激。

规则必须添加到质量配置文件中。 在sonarqube Web应用程序上转到质量配置文件。 登录右上角(默认情况下为user = admin,pass = admin),单击右上角的“创建”并创建新的配置文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM