誰かが私が日食のためにpmdでルールを作成するのを手伝ってくれませんか?PMD公式サイトをフォローしても起動できません。XPathルールの代わりにJavaでルールを作成することを計画しています。それを始めるための簡単なガイドラインはありますか?ありがとう
1255 次
2 に答える
0
少し前に、役立つサンプル コードを含むチュートリアルを書きました。
于 2011-11-22T22:48:05.520 に答える
0
「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.bat の代わりに pmd.sh を使用します。
- 実行できるようになったら、独自のパッケージ内に独自のルールを作成できます。
お役に立てれば。!
于 2011-09-22T10:50:07.060 に答える