声纳自定义小部件
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).
我使用 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).