2015-11-17 4 views
2

У меня есть плагин Java (3.7.1) и плагин XML (1.3), и я пытаюсь добавить правила Xpath для идентификации вещей на Java. Я скопировал/вставлял исходные файлы, где я ожидал, что правило будет запущено в инструментарий SSLR, и мое выражение Xpath работает очень хорошо. Я нашел шаблон правила XPath в Sonar (ему пришлось установить плагин XML, чтобы его получить, он не включен в плагин Java) и поместил туда мой xpath. У меня есть соответствующие файлы типа *, и похоже, что это правило, даже если оно находится в плагине XML, может поддерживать java, потому что в тексте шаблона конкретно говорится о совпадении узлов AST. Однако мое правило не стреляет. Я сделал другое правило, чтобы запускать файлы XML, и это работает.Правила Java XPath в Sonarqube 5.2

Я активировал оба правила в сонарском пути, который применяется к рассматриваемому проекту, и для обоих правил установлены блокировки (теперь - только чтобы сделать некоторый шум). Но работает только тот, который соответствует фактическим файлам XML.

Какой шаг мне не хватает? Документация немного устарела.

ответ

1

Вам нужно было установить плагин XML, чтобы получить правило XPath, потому что плагин Java больше не поддерживает правила записи в XPath. Вот почему документация устарела; этот способ написания правил был удален.

Шаблон XPath, который у вас есть, будет работать только с файлами XML. Вот почему у вас нет проблем.

Вместо этого вам необходимо будет ввести свои правила для Java in Java.

+0

Я знал, что он был удален, когда они перешли с PMD на SSLR, но я думал, что он вернулся. Это похоже на целую церемонию для чего-то такого простого. – Colselaw

+2

Причина отказа XPath была в том, что в конце концов она была ненадежной. «Путь» через АСТ опирался на форму АСТ, которая могла меняться от версии к версии, заставляя ваши правила XPath терпеть неудачу молча. –

+0

@Colselaw Как поддерживающий Java-плагин, дайте мне точные вещи: это не имеет ничего общего с PMD. SSLR используется для поддержки правил Xpath. Мы отбрасываем эту функцию при переходе на AST с выделенным типом для каждого узла, что обеспечивает более надежный API (с ошибкой времени компиляции) для правил custome, как указано в Ann. – benzonico

Смежные вопросы