首页 文章

PMD Apex无法在Windows上找到规则资源

提问于
浏览
0

我'm trying to configure PMD for code analysis. I'm使用VS Code,已经安装了Java 10,下载了几个版本的PMD
enter image description here

我已经为VS Code安装了Apex PMD扩展,并按照它的说明对其进行了配置 .

但无论我选择哪个版本,都要找不到资源错误 .

这是VS Code输出的一部分

PMD命令:java -cp“C:\ Code \ pmd-bin-5.7.0 \ lib *”net.sourceforge.pmd.PMD -d“c:\ Code \ Lightning \ src \ classes \ AccountController.cls” - f csv -R“C:\ Code \ ruleset \ apex_default.xml”错误:错误:命令失败:java -cp“C:\ Code \ pmd-bin-5.7.0 \ lib *”net.sourceforge.pmd.PMD -d“c:\ Code \ Lightning \ src \ classes \ AccountController.cls”-f csv -R“C:\ Code \ ruleset \ apex_default.xml”2019年9月12日下午2:35:20 net.sourceforge.pmd .RulesetsFactoryUtils getRuleSets SEVERE:找不到规则集net.sourceforge.pmd.RuleSetNotFoundException:无法为规则'ExcessiveParameterList'找到资源'category / apex / design.xml' . 确保资源是有效的文件或URL,并且位于CLASSPATH上 . 这是当前的类路径:C:\ Code \ pmd-bin-5.7.0 \ lib \ antlr-runtime-3.5.2.jar; C:\ Code \ pmd-bin-5.7.0 \ lib \ antlr4-runtime-4.5 .2-1.jar; C:\代码\ PMD彬5.7.0 \ lib中\ ASM-5.0.4.jar; C:\代码\ PMD彬5.7.0 \ lib中\公地-IO-2.4的.jar; C:\代码\ PMD彬5.7.0 \ lib中\公地lang3-3.4.jar; C:\代码\ PMD彬5.7.0 \ lib中\常规-2.4.7.jar; C ^ :\代码\ PMD彬5.7.0 \ lib中\ GSON-2.5.jar; C:\代码\ PMD彬5.7.0 \ lib中\的JavaCC-5.0.jar; C:\代码\ PMD-bin- 5.7.0 \ lib中\ Jaxen的-1.1.6.jar; C:\代码\ PMD彬5.7.0 \ lib中\ jcommander-1.48.jar; C:\代码\ PMD彬5.7.0 \ lib中\ PMD-顶点-5.7.0-顶点-jorje-shaded.jar; C:\代码\ PMD彬5.7.0 \ lib中\ PMD-顶点-5.7.0.jar; C:\代码\ PMD-bin- 5.7.0 \ lib中\ PMD-芯5.7.0.jar; C:\代码\ PMD彬5.7.0 \ lib中\ PMD-CPP-5.7.0.jar; C:\代码\ PMD-bin- 5.7.0 \ lib中\ PMD-CS-5.7.0.jar; C:\代码\ PMD彬5.7.0 \ lib中\ PMD-FORTRAN-5.7.0.jar; C:\代码\ PMD-bin- 5.7.0 \ LIB \ PMD-GO-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-常规-5.7.0.jar; C:\代码\ PMD-bin- 5.7.0 \ lib中\ PMD-java的5.7.0.jar; C:\代码\ PMD彬5.7.0 \ lib中\ PMD-JavaScript的5.7.0.jar; C:\代码\ PMD-bin- 5.7.0 \ lib中\ PMD-JSP-5.7.0.jar; C:\有限公司解\ PMD彬5.7.0 \ lib中\ PMD-MATLAB-5.7.0.jar; C:\代码\ PMD彬5.7.0 \ lib中\ PMD-的ObjectiveC-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-perl的-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-PHP-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-PLSQL-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-蟒蛇-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-红宝石5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-斯卡拉-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-迅速-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-UI-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-visualforce-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-VM-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \ PMD-XML-5.7.0.jar; C:\代码\ PMD斌-5.7.0 \ LIB \犀牛1.7.7.jar; C:\代码\ PMD彬5.7.0 \ lib中\撒克逊9.1.0.8-dom.jar; C:\代码\ PMD彬5.7.0 \ lib中\撒克逊9.1.0.8.jar; C:\代码\ pmd-仓-5.7.0 \ lib中\阶编译-2.10.4.jar; C:\代码\ PMD彬5.7.0 \ lib中\阶库-2.10.4.jar; C:\代码\ pmd-滨5.7.0 \ LIB \斯卡拉 - 反射 - 2.10.4.jar

如果我从命令行运行命令,我得到一个类似的输出 . 这个错误适用于我的规则集上的每个规则,这些规则没有什么特别之处,它是扩展程序附带的默认规则集 .

1 回答

  • 1

    PMD 6.7.0适用于我,5.7.0失败:

    自PMD 6以来,您在此路径下引用“category / apex / design.xml / ExcessiveParameterList”的规则 . 在该版本中,我们将规则分类 . 使用PMD 5.7.0时,您需要使用旧的规则集:“rulesets / apex / complexity.xml / ExcessiveParameterList” . 使用最新的PMD版本可能更好 . 有没有办法配置Apex PMD扩展?

    另见https://github.com/pmd/pmd/issues/1344

相关问题