【问题标题】:How can a SonarPlugin query its settings?SonarPlugin 如何查询其设置?
【发布时间】:2015-10-29 12:31:16
【问题描述】:

我目前正在开发 SonarQube 插件,并想询问是否有办法在运行时从 sonar-project-properties 文件中查询设置。

更具体地说,在 sonar-project-properties 文件中,您可以将分析模式设置为分析、预览或增量,例如 sonar.analysis.mode=analysis。

由于预览和增量模式会出错的问题,我想在指定这两种模式之一时禁用插件。

我知道有用于排除插件的 sonar.preview.excludePlugins 设置,但是我不能使用它。换句话说,我必须在运行时弄清楚设置了哪种模式。

谁能给我一个提示,因为我还没有找到从 sonar-project.properties 文件中查询设置的方法?

【问题讨论】:

    标签: sonarqube sonar-runner sonarqube-4.5


    【解决方案1】:

    插件无法通过标准插件排除属性自动禁用自身。 解决方案是您的插件扩展,例如传感器,通过组件org.sonar.api.config.Settings 读取属性,然后相应地继续或停止执行。基本上:

    public class MySensor implements Sensor {
      private final Settings settings;
    
      public MySensor(Settings settings) {
        this.settings = settings;
      }
    
      public void analyse(Project module, SensorContext context) {
        if ("analysis ".equals(settings.getString("sonar.analysis.mode"))) {
          return;
        }
        // else continue...
      }
    }
    

    【讨论】:

    • 即使我使用的是装饰器,解决方案也是一样的。谢谢!
    猜你喜欢
    • 2022-11-30
    • 2011-12-11
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多