Плагин sonarqube: javacustom classloader предотвращает выполнение правила xml

Мне нужен плагин сонара для анализа родительских классов каждого класса Java моего проекта. Итак, я начал с этого примера, представленного в документации Sonar.

Все было в порядке, пока я не хотел получить родительский класс: выражение

tree.superClass().symbolType() instanceof ClassJavaType 

возвращает false, но в отладчике я вижу, что он относится к этому типу. Проблема в том, что загрузчик классов класса symbolType - это "java", а загрузчик классов моего ClassJavaType - "javacustom" (ключ для моего плагина).

Я использовал обходной путь, вызвав объявленный метод getSuperType путем отражения и проверив типы с помощью getClass(). GetName(). Equals(...) вместо instanceof.

Но эта несовместимость classpath вызывает другую проблему в моем проекте. Я попытался создать правило XML (расширяя плагин Java, потому что он может сканировать и XML-файлы). Но мое правило никогда не выполняется, потому что XmlAnalyzer не распознает мой класс как экземпляр XmlCheck (по той же причине, что и несвязанные загрузчики классов), и не выполняет мое правило.

Итак, мой вопрос: есть ли способ избежать этой проблемы? Если нет, то официальный пример расширения плагина кажется ошибочным...

0 ответов

Другие вопросы по тегам