自写sonar 插件加载到sonar 服务中的展示信息

本文介绍如何为SonarQube开发自定义语言插件,以ConfigFiles插件为例,详细展示了插件的实现方式,包括关键类ConfigFileScanPlugin的定义、配置属性设置及如何在Sonar服务中展示语言插件信息。

在sonar 服务页面的administer->configuration页面展示每一种语言插件的信息:

上图对应的是自写的语言(configfiles)ConfigFiles插件

上面的信息展示是通过plugin 扩展类中addExtensions(ConfigFilesLanguageProperties.getProperties()) 加载

public class ConfigFileScanPlugin implements Plugin {
	
	public static final String CHECK_SECURITY = "security";
	public static final String CHECK_BUG = "bug";
	public static final String REPOSITORY_KEY = "configfilerepo";
	public static final String REPOSITORY_NAME = "configFilePluginRepo";
	public static final String LANGUAGE_KEY = "java";
    public static final String LANGUAGE_NAME = "JProperties";
   public static final String FILE_SUFFIXES_DEFAULT_VALUE = ".properties,.ini,.conf";
   public static final String FILE_SUFFIXES_KEY = "sonar.java.file.suffixes";
    
    @Override
    public void define(Context context) {
       System.out.println("load ConfigFileScanPlugin.");
       context.addExtensions(ConfigFileScanLanguage.class, 
        ConfigFileScanProfileDefinition.class)
              .addExtension(ConfigFileScanSensor.class)
              .addExtension(ConfigFileScanRulesDefinition.class)
              .addExtensions(ConfigFilesLanguageProperties.getProperties());     
    }
}

ConfigFilesLanguageProperties代码:

import java.util.List;

import org.sonar.api.config.PropertyDefinition;
import org.sonar.api.resources.Qualifiers;

import com.lingtian.sonar.plugin.ConfigFileScanPlugin;

public class ConfigFilesLanguageProperties {
   
	  private ConfigFilesLanguageProperties() {
	    // only statics
	  }

	  public static List<PropertyDefinition> getProperties() {
	    return asList(PropertyDefinition.builder(ConfigFileScanPlugin.LANGUAGE_KEY)
	      .defaultValue(ConfigFileScanPlugin.FILE_SUFFIXES_DEFAULT_VALUE)
	      .category("ConfigFiles")
	      .name("scan configFiles userMsg")
	      .description("configFiles without contain userMsg.")
	      .onQualifiers(Qualifiers.PROJECT)
	      .build());
	  }
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值