声纳自定义小部件
Posted
技术标签:
【中文标题】声纳自定义小部件【英文标题】:Sonar Custom Widget 【发布时间】:2016-02-04 07:01:27 【问题描述】:我使用 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";
非常感谢您
【问题讨论】:
【参考方案1】:您尚未在 .java
文件中为您的小部件 (@WidgetScope("GLOBAL")
) 指定全局范围,因此这是您的 .erb
文件中的内容的问题。
这个Widget Lab 属性widget 应该给你一些指示。具体来说:您想在您的小部件中选择@project
,并使用@project.uuid
进行查询。 Here's another 用于比较的项目级小部件。
不过,您应该知道,SonarSource 正在积极努力从平台中移除 Ruby,因此在未来某个日期,您可能最终会重新编写小部件(可能使用纯 javascript)。
【讨论】:
非常感谢您的快速回复。你能帮我理解使小部件显示不同小部件的任何逻辑应该写在.erb文件上吗?我正在尝试开发的这个小部件是一个完全开箱即用的小部件。为此,我需要在 sonar.properties 文件中包含任何内容吗?请指教。提前谢谢你! 看看 Widget 实验室插件(文档:docs.sonarqube.org/display/PLUG/Widget+Lab+Plugin)。以上是关于声纳自定义小部件的主要内容,如果未能解决你的问题,请参考以下文章