2010-10-02 1 views
1

Может ли кто-нибудь помочь мне создать правило в pmd для eclipse? Я не могу начать даже после того, как я пошел через официальный сайт PMD. Я планирую создать правило в java вместо правила XPath. Какие-нибудь простые рекомендации для его запуска? ThanksКак создать правило для java-комментариев в pmd?

+1

Вы пробовали следовать руководству? http://pmd.sourceforge.net/howtowritearule.html –

+0

s i, но все же я не могу выбрать, какой из них лучше создать правило. i.e .. 'Напишите правило с помощью Java' или 'Напишите выражение XPath'. Это самый простой способ? – hemanth

ответ

0

Попробуйте использовать метод «Напишите правило, используя Java», так как вы можете легко начать этот путь, а позже можете попробовать с выражениями XPath. Вы можете следовать этим шагам рядом с официальным link.

  • Начать с пакетом Src, который поставляется с PMD (например, PMD-4.2.x \ ЦСИ), создать класс Java внутри существующего пакета (например, PMD-4.2.5 \ SRC \ сетчатой ​​\ SourceForge \ PMD \ правила \ основные). В этом случае следующий пример кода (WhileLoopsMustUseBracesRule):

    package net.sourceforge.pmd.rules.basic; 

    import net.sourceforge.pmd.*; 
    import net.sourceforge.pmd.ast.*; 

    public class WhileLoopsMustUseBracesRule extends AbstractRule { 
     public Object visit(ASTWhileStatement node, Object data) { 
      SimpleNode firstStmt = (SimpleNode)node.jjtGetChild(1); 
      if (!hasBlockAsFirstChild(firstStmt)) { 
       addViolation(data, node); 
      } 
      return super.visit(node,data); 
     } 
     private boolean hasBlockAsFirstChild(SimpleNode node) { 
      return (node.jjtGetNumChildren() != 0 && (node.jjtGetChild(0) instanceof ASTBlock)); 
     } 
    } 

  • Append следующее правило внутри basic.xml (PMD-4.2.5 \ наборы правил \ basic.xml):

    Скопируйте содержимое xml с поля «Поместить правило WhileLoopsMustUseBracesRule в файле набора правил» в basic.xml.

    Заменить строку

    class="WhileLoopsMustUseBracesRule"> 
    

    с

    class="net.sourceforge.pmd.rules.basic.WhileLoopsMustUseBracesRule"> 
    

    , как вы должны создать Java-файл (WhileLoopsMustUseBracesRule.java) внутри пакета "net.sourceforge.pmd.rules.basic"

  • Запустите эту команду из приглашения cmd, если в Windows.


    pmd.bat C:\JAVAFILE_ON_WHICH_YOU_WANT_TO_RUN_THIS_RULE xml C:\PMD\pmd-4.2.5\pmd-4.2.5\rulesets\basic.xml 

  • Для NIX ОС (Linux/MacOS), используйте pmd.sh вместо pmd.bat
  • После того, как вы можете получить это работает, вы можете создать собственное правило внутри ваш собственный пакет.

Надеюсь, это поможет.!

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