2010-01-30 3 views
1

Я пытаюсь написать правило для обеспечения, что пакет содержит Javadoc комментарий с определенным выражением, например:Пользовательские PMD Правило - Проверка пакета Комментарий В Место

/** 
* Example Expression 
*/ 

Кто-нибудь знает, как я хотел бы написать такое правило, используя класс AbstractJavaRule. Я посмотрел на ASTPackageDeclaration, но у этого, похоже, нет того, чего я хочу.

Большое спасибо заранее ...

ответ

1

PMD использует JavaCC для разбора каждого файла Java в абстрактное синтаксическое дерево. Обычно синтаксические анализаторы, используемые для компиляции, просто отбрасывают комментарии, и из того, что я могу собрать на странице "How to write a rule", PMD также отбрасывает комментарии от AST.

Но, смотря на форум PMD, он выглядит как comments are preserved as a SPECIAL_TOKEN, но сложно выровнять их с узлом AST, с которым они связаны. Поэтому вам может быть трудно написать это правило. Вы посмотрели на Checkstyle? Он имеет RegexpHeader rule, который может делать то, что вы хотите.

+0

Отличный ответ, спасибо. Я посмотрю сегодня и посмотрю, смогу ли я получить комментарии с PMD. Я видел в разделе «Правила проектирования» есть проверка на UncommentedEmptyMethod. Выглядит многообещающе, не получив, чтобы я бросился в Checkstyle и попробовал это. – Jon