Java代码缺陷自动分析工具介绍(10)
发布时间:2021-06-08
发布时间:2021-06-08
Java代码缺陷自动分析工具介绍
(2) 将pmd-2.0.jar中的rulesets解压到指定目录,这里面定义了分析所需要的规则集
合。
(3) 修改build.xml文件。在这一版本中,提供了2个ant task。一个是pmd使用规则
集合进行分析;另一个是检查代码中Copy & Paste代码。这2个任务对应的ant task使用:
PMD任务:
<target name="pmd">
<!-- 定义任务和任务所属类所在的classpath引用 -->
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="classpath"/>
<!-- 检查使用的规则文件 -->
<pmd rulesetfiles="junit_lib/rulesets/imports.xml">
<!-- 输出格式和文件名 -->
<formatter type="html" toFile="pmd_report.html"/>
<!-- pmd所需要依赖包的classpath引用 -->
<classpath refid="classpath"/>
<!-- 要检查的项目源文件根目录 -->
<fileset dir="src">
<include name="**/*.java"/>
</fileset>
</pmd>
</target>
CPD任务:
<target name="cpd">
<!-- 定义任务和任务所属类所在的classpath -->
<taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" classpathref="classpath"/>
<!-- 指明输出文件和判断属于copy & paste的标准 -->
<cpd minimumTokenCount="100" outputFile="cpd.txtl">
<!-- 要检查的项目源文件根目录 -->
<fileset dir="src">
<include name="**/*.java"/>
</fileset>
</cpd>
</target>
(4) 运行ant pmd和ant cpd即可。
(5) 参数说明:
- formatter,指明输出格式和文件。
- rulesetfiles,指明分析所需的规则文件,不同文件使用逗号分隔。
- failonerror,pmd执行出错是否中止构建过程。
- failOnRuleViolation,如果与规则冲突,是否中止构建过程。
- classpath,pmd所需的classpath。
- printToConsole,在发现问题时是否打印到ant log或控制台。
- shortFilenames,在输出报告中是否使用短文件名。