声纳自定义小部件

Sonar Custom Widget

我使用 github 中提供的源代码创建了一个小部件。现在我在 SonarQube V5.3 中使用那个小部件。这是我从中获得源代码的地方: https://github.com/SonarSource/sonar-examples/tree/master/plugins/sonar-reference-plugin

当我使用这个小部件时,它显示跨多个项目的相同数据。我想知道是否有任何方法可以为不同的项目显示不同的数据。请分享您的想法。下面是显示 ruby 小部件

的代码
    import org.sonar.api.web.AbstractRubyTemplate;
    import org.sonar.api.web.Description;
    import org.sonar.api.web.RubyRailsWidget;
    import org.sonar.api.web.UserRole;
    import org.sonar.api.web.WidgetCategory;
    import org.sonar.api.web.WidgetProperties;
    import org.sonar.api.web.WidgetProperty;
    import org.sonar.api.web.WidgetPropertyType;
    import org.sonar.api.batch.CheckProject;
    import org.sonar.api.resources.Project;
    @UserRole(UserRole.USER)
    @Description("Sample")
    @WidgetCategory("Sample")
    @WidgetProperties({
      @WidgetProperty(key = "Index",type=WidgetPropertyType.TEXT
      ),

    })
    public class OneMoreRubyWidget extends AbstractRubyTemplate implements RubyRailsWidget {

      @Override
      public String getId() {
        return "Sample";
      }

      @Override
      public String getTitle() {
        return "Sample";
      }

      @Override
      protected String getTemplatePath() {

          return "/example/Index.html.erb";
      }
    }

非常感谢您

您没有在 .java 文件中为您的小部件 (@WidgetScope("GLOBAL")) 指定全局范围,所以这是一个关于您的 .erb 文件中的内容的问题。

Widget Lab property widget should give you some pointers. Specifically: you want to pick up @project in your widget, and query with @project.uuid. Here's another 项目级小部件用于比较。

不过,您应该知道,SonarSource 正在积极努力从平台中删除 Ruby,因此在未来的某个时候,您可能最终会重写您的小部件(可能是纯 JavaScript).