Запуск всех наборов правил PMD из командной строки
Я хочу знать, есть ли способ запустить все наборы правил PMD из командной строки.
Я использовал PMD, интегрированный с Eclipse IDE и Maven. Но теперь мне нужно запустить его от кли. Я проверил эту страницу http://pmd.sourceforge.net/pmd-5.1.0/running.html и он говорит, что вы можете запустить его из CLI, но с определенными наборами правил:
C:tmppmd-bin-5.1.0pmdbin>pmd -d c:datapmdpmdtest-dataUnused1.java -f xml -R rulesets/java/unusedcode.xml
В этом примере вы просто получаете результаты длянеиспользуемого кода Java правила, и я пытаюсь достичь чего-то вроде:
C:tmppmd-bin-5.1.0pmdbin>pmd -d c:datapmdpmdtest-dataUnused1.java -f xml -R rulesets/java/*.xml
И получить результаты для всех правил в наборах правил Java.
1 ответ:
Вы можете определить конфигурационный файл, который включает наборы правил, которые вы хотите запустить. Этот файл можно задать в качестве параметра после аргумента
-R
в командной строке.Пример файла находится здесь (
MyRules.xml
):<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <ruleset name="PMD.rul" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"> <description>This ruleset was created from PMD.rul</description> <rule ref="rulesets/java/basic.xml"> <exclude name="UnnecessaryFinalModifier"/> </rule> <rule ref="rulesets/java/braces.xml"/> <rule ref="rulesets/java/clone.xml"/> <rule ref="rulesets/java/comments.xml"/> <rule ref="rulesets/java/controversial.xml"> <exclude name="AtLeastOneConstructor"/> <exclude name="UnnecessaryParentheses"/> </rule> <rule ref="rulesets/java/design.xml"> <exclude name="GodClass"/> </rule> <rule ref="rulesets/java/empty.xml"/> <rule ref="rulesets/java/finalizers.xml"/> <rule ref="rulesets/java/imports.xml"/> <rule ref="rulesets/java/j2ee.xml"/> <rule ref="rulesets/java/javabeans.xml"/> <rule ref="rulesets/java/junit.xml"/> <rule ref="rulesets/java/logging-jakarta-commons.xml"/> <rule ref="rulesets/java/logging-java.xml"/> <rule ref="rulesets/java/naming.xml"/> <rule ref="rulesets/java/optimizations.xml"/> <rule ref="rulesets/java/strictexception.xml"/> <rule ref="rulesets/java/strings.xml"/> <rule ref="rulesets/java/sunsecure.xml"/> <rule ref="rulesets/java/typeresolution.xml"/> <rule ref="rulesets/java/unnecessary.xml"> <exclude name="UnnecessaryFinalModifier"/> <exclude name="UnnecessaryReturn"/> <exclude name="UselessParentheses"/> </rule> <rule ref="rulesets/java/unusedcode.xml"/> </ruleset>
Аргументы командной строки будут выглядеть следующим образом:
C:\tmp\pmd-bin-5.1.0\pmd\bin>pmd -d c:\data\pmd\pmd\test-data\Unused1.java -f xml -R MyRules.xml