Nik*_*sov 5 java eclipse ant pmd
我试图运行PMD来自Ant于Eclipse当我生成项目.
这是我的build.xml文件:
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
<target name="check_pmd">
<pmd rulesetfiles="C:\Users\Nikolay\ProjectName\lib\rulesets\java\basic.xml">
<formatter type="html" toFile="pmd_report.html" toConsole="true"/>
<fileset dir="C:\Users\Nikolay\ProjectName\src">
<include name="**/*.java"/>
</fileset>
</pmd>
</target>
Run Code Online (Sandbox Code Playgroud)
它运行良好basic.xml,但我想运行java文件夹中的所有规则集(它有大约20个规则集)所以我尝试过:
<pmd rulesetfiles="C:\Users\Nikolay\ProjectName\lib\rulesets\java\*.xml">
<pmd rulesetfiles="C:\Users\Nikolay\ProjectName\lib\rulesets\java\*">
Run Code Online (Sandbox Code Playgroud)
但是当我试图跑步时,他们都失败了.有没有办法指定文件夹,而不是手动指定文件列表的单个文件?
为了让未来的读者在Eclipse下配置Ant PMD:
pmd-bin.zip从官方网站下载pmd.jar,jaxen.jar然后asm.jarrulesets文件夹<pmd rulesetfiles=...>(扩展coolfan对ant任务的答案)
PMD 规则集文件的文档说它是逗号分隔的文件列表。
规则集文件 以逗号分隔的规则集文件列表('rulesets/basic.xml,rulesets/design.xml')。如果您编写自己的规则集文件,则可以将它们放在类路径中并将它们插入此处。是,除非使用规则集嵌套元素
Ant 提供了一种将文件集转换为这种格式的方法。任务是路径转换
这是网站上的示例
<fileset dir="${src.dir}" id="src.files">
<include name="**/*.java"/>
</fileset>
<pathconvert pathsep="," property="javafiles" refid="src.files"/>
Run Code Online (Sandbox Code Playgroud)