(Sonarqube) (Custom Plugin) (get SonarQube Session)

(Sonarqube) (Custom Plugin) (get SonarQube Session)

尊敬的 SonarQube 开发人员,

我想在 "Initializer" 阶段获取 SonarQube session,并在会话中放置一些对象变量,以便在分析我的自定义规则时恢复它们. 这样我就不会在同一个分析会话中多次计算这些对象。

可能吗? 我该怎么做?

非常感谢您的建议。

沃格宁

我已经通过在 ProjectBuilder 阶段使用 Java 系统属性解决了这个问题,方法是:

ParametresProjet paramProj = parseFichierPom(projDef.getKeyWithBranch());

    if (paramProj != null) {
        Properties properties = System.getProperties();
        // sauvegarde des objets dans la session
        properties.put(PROPRIETES_DU_POM, paramProj );

        Boolean isException = ProjetControleur.isProjetEnException(paramProj.getGroupId(), paramProj.getArtifactId());

        properties.put(PROJET_EN_EXCEPTION, isException);
        System.setProperties(properties);
    }

而且我可以在 Java 分析期间进一步恢复这些属性,这样:

private static Boolean isException;

/** static initializer */
static {
    isException = (Boolean) System.getProperties().get(PROJET_EN_EXCEPTION);
}

这解决了我的问题,但我不知道在 SonarQube 的会话中放置和恢复对象是否是一个好方法。 你怎么看?

沃格宁