PMD 规则集文件

Posted

技术标签:

【中文标题】PMD 规则集文件【英文标题】:PMD ruleset file 【发布时间】:2011-08-09 05:49:21 【问题描述】:

我试图弄清楚默认规则集文件在哪里,默认规则集文件的名称以及我们如何向其中添加我们自己的规则。我试图谷歌,但这只是让我感到困惑。到目前为止,我已将 pmd 插件放在 eclipse 插件文件夹中,并且在首选项中我可以看到 PMD。

【问题讨论】:

我认为你应该接受这个答案。这是正确和有用的 如果您使用 maven 将 pmd 与使用“maven-pmd-plugin”的 maven 集成。在 pom.xml 中配置规则 【参考方案1】:

标准规则集文件是 *.xmlpmd-bin-x.x.x.zip/.../lib/pmd-x.x.x.jar/rulesets/ 内, 请参阅http://pmd.sourceforge.net/rules/index.html

PMD Eclipse Plugin 的默认规则集文件位于 IDE/plugins/...pmd___.jar 中,但是您不应对该文件进行任何更改。 Add/edit the rules 在 Eclipse Preferences 中,任何更改都将优先于默认规则集。

【讨论】:

PMD - IDE Integrations page 也很有帮助。【参考方案2】:

在搞砸了 Ant 和 PMD 很长一段时间后,这是我想出的完整解决方案。根据自己的口味修改。


这设置了我使用的初始目录。

<property name="doc" location="doc" />               <!-- Root for all documentation: -->
<property name="pmddoc" location="$doc/pmddoc" />  <!-- PMD results -->

这是我的任务定义,它指向我存储它的 PMD 的最新版本。它包括 PMD Jar 本身(所有规则都存储在其中)以及所有 PMD 的依赖项。

<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
    <classpath>
        <fileset dir="C:\development\pmd-bin-5.0-alpha">
            <include name="lib/*.jar"/>    <!-- also includes pmd's file, which has all the rulesets I need. -->
        </fileset>
    </classpath>
</taskdef>

在初始化时,如果需要,我会创建文档文件夹:

<target name="init">
    <mkdir dir="$pmddoc" />
</target>

...最后,我创建了一个专门用于以 HTML 形式创建 PMD 报告的目标。在这里。

<target name="pmd" depends="init">
    <pmd>
        <formatter type="html" toFile="$pmddoc/pmd_src_report.html" toConsole="true"/>

        <ruleset>rulesets/java/basic.xml</ruleset> <!-- references file in PMD's .jar -->

        <!-- Files PMD will test. -->       
        <fileset dir="$src">
            <include name="**/*.java"/>     <!-- required to avoid firing off .aj errors. This ruleset doesn't support AspectJ. -->
        </fileset>
    </pmd>
</target>

【讨论】:

以上是关于PMD 规则集文件的主要内容,如果未能解决你的问题,请参考以下文章

IDEA插件之PMD

pmd 使用笔记

PMD 规则背后的“原因”

pmd

代码静态解析PMD

pmd静态代码分析