0

我使用 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";
      }
    }

非常感谢你提前

4

1 回答 1

1

您没有@WidgetScope("GLOBAL")在文件中为您的小部件 ( )指定全局范围.java,所以这是您的.erb文件中包含什么的问题。

这个Widget Lab属性小部件应该给你一些指示。具体来说:您想@project在您的小部件中获取,并使用@project.uuid. 这是另一个用于比较的项目级小部件。

不过,您应该知道,SonarSource 正在积极努力从平台中删除 Ruby,因此在将来的某个日期,您可能最终会重新编写小部件(可能使用纯 JavaScript)。

于 2016-02-04T12:28:54.757 回答