簡體   English   中英

如何在PMD中為Java注釋創建規則?

[英]how to create rule for java comments in pmd?

有人可以幫我在Pmd中為月食創建規則嗎? 即使我通過PMD官方網站也無法啟動。 我打算在Java中創建規則,而不是XPath規則。 有什么簡單的指導開始嗎? 謝謝

嘗試使用“使用Java編寫規則”方法,因為您可以輕松地以這種方式開始,以后可以嘗試使用XPath表達式。 您可以在官方鏈接旁執行以下步驟。

  • 從PMD隨附的src軟件包開始(例如pmd-4.2.x \\ src),在現有軟件包中創建Java類(例如pmd-4.2.5 \\ src \\ net \\ sourceforge \\ pmd \\ rules \\ basic)。 在這種情況下,它是以下示例代碼(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));
        }
    }

  • 在basic.xml(pmd-4.2.5 \\ rulesets \\ basic.xml)內附加以下規則:

    將“將WhileLoopsMustUseBracesRule規則放入規則集文件中”部分的xml內容復制粘貼到basic.xml中。

    更換線

     class="WhileLoopsMustUseBracesRule"> 

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

    因為您必須在“ net.sourceforge.pmd.rules.basic”包中創建了Java文件(WhileLoopsMustUseBracesRule.java)

  • 如果在Windows中,請從cmd提示符運行此命令。


    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 os(linux / MacOS),請使用pmd.sh而不是pmd.bat
  • 一旦能夠運行它,就可以在自己的包中創建自己的規則。

希望這可以幫助。!

我前一段時間寫了一個教程,其中包含一些可能有用的示例代碼。

http://www.techtraits.ca/writting-pretty-code-with-pmd/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM