SonarPlugin 如何查询其设置?
How can a SonarPlugin query its settings?
我目前正在开发一个SonarQube插件,想问一下是否有办法在运行时从sonar-project-properties文件中查询设置。
更具体地说,在 sonar-project-properties 文件中,您可以将分析模式设置为分析、预览或增量,例如 sonar.analysis.mode=analysis。
由于预览和增量模式运行出错的问题,我想在指定这两种模式之一时禁用插件。
我知道有排除插件的sonar.preview.excludePlugins设置,但是我不能使用它。换句话说,我必须在 运行 时间弄清楚设置了哪种模式。
谁能给我提示,因为我还没有找到从声纳-project.properties 文件中查询设置的方法?
插件无法通过标准插件排除属性自动禁用。
解决方案是您的插件扩展,例如传感器,通过组件 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...
}
}
我目前正在开发一个SonarQube插件,想问一下是否有办法在运行时从sonar-project-properties文件中查询设置。
更具体地说,在 sonar-project-properties 文件中,您可以将分析模式设置为分析、预览或增量,例如 sonar.analysis.mode=analysis。
由于预览和增量模式运行出错的问题,我想在指定这两种模式之一时禁用插件。
我知道有排除插件的sonar.preview.excludePlugins设置,但是我不能使用它。换句话说,我必须在 运行 时间弄清楚设置了哪种模式。
谁能给我提示,因为我还没有找到从声纳-project.properties 文件中查询设置的方法?
插件无法通过标准插件排除属性自动禁用。
解决方案是您的插件扩展,例如传感器,通过组件 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...
}
}