PMD规则集文件

Nis*_*sha 27 java pmd maven

我是PMD的新手.我试图找出默认规则集文件的位置,默认规则集文件的名称以及我们如何向其添加自己的规则.我试图谷歌,但这只是让我感到困惑.到目前为止,我已将pmd插件放在eclipse插件文件夹中,在首选项中我可以看到PMD.

有谁可以请我这个?

谢谢,妮莎

lsc*_*hin 24

标准规则集文件是*.XMLPMD彬xxxzip /.../的lib/PMD-xxxjar /规则集/,请参阅http://pmd.sourceforge.net/rules/index.html.

PMD Eclipse插件的默认规则集文件位于{IDE}/plugins/...中的pmd ___.jar内,但您不应对该文件进行任何更改.在Eclipse Preferences中添加/编辑规则,任何更改都将优先于默认规则集.


小智 5

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


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

<property name="doc" location="doc" />               <!-- Root for all documentation: -->
<property name="pmddoc" location="${doc}/pmddoc" />  <!-- PMD results -->
Run Code Online (Sandbox Code Playgroud)

这是我的任务定义,它指向我当前存储的 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>
Run Code Online (Sandbox Code Playgroud)

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

<target name="init">
    <mkdir dir="${pmddoc}" />
</target>
Run Code Online (Sandbox Code Playgroud)

...最后,我创建了一个专门用于以 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>
Run Code Online (Sandbox Code Playgroud)