Пользовательский виджет Sonar

Я создал виджет, используя исходный код, доступный на github. Теперь я использую этот виджет в SonarQube V5.3. Здесь я получил исходный код: https://github.com/SonarSource/sonar-examples/tree/master/plugins/sonar-reference-plugin

Когда я использую этот виджет, он отображает одни и те же данные в нескольких проектах. Я хотел бы знать, есть ли способ отображать разные данные для разных проектов. Пожалуйста, поделитесь своими идеями. Ниже приведен код, отображающий рубиновый виджет.

    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";
      }
    }

Огромное спасибо заранее


person chay    schedule 04.02.2016    source источник


Ответы (1)


Вы не указали глобальную область видимости для своего виджета (@WidgetScope("GLOBAL")) в файле .java, поэтому вопрос в том, что находится в вашем файле .erb.

Это свойство Widget Lab widget должен дать вам несколько советов. В частности: вы хотите выбрать @project в своем виджете и запросить с помощью @project.uuid. Еще один проект виджет уровня для сравнения.

Тем не менее, вы должны знать, что SonarSource активно работает над удалением Ruby с платформы, поэтому в будущем вы, вероятно, перепишете свои виджеты (скорее всего, на чистом JavaScript).

person G. Ann - SonarSource Team    schedule 04.02.2016
comment
Большое спасибо за быстрый ответ. Не могли бы вы помочь мне понять какую-либо логику, чтобы заставить виджет отображать другой виджет, который должен быть записан в файле .erb? Этот виджет, который я пытаюсь разработать, совершенно нестандартный виджет. Для этого мне нужно включить что-нибудь в файл sonar.properties? Пожалуйста, порекомендуйте. Заранее спасибо!! - person chay; 08.02.2016
comment
Взгляните на плагин Widget lab (документы: docs.sonarqube.org/display /PLUG/Виджет+Лаборатория+Плагин). - person G. Ann - SonarSource Team; 08.02.2016