Я работаю с Maven PMD Plugin версии 3.3. Он использует PMD 5.2.1.
При таком подключении доступные наборы правил определяются:
- net.sourceforge.pmd: pmd-core
- net.sourceforge.pmd: pmd-java
- net.sourceforge.pmd: pmd-javascript
- net.sourceforge.pmd: pmd-jsp
Я смог определить файл настраиваемого набора правил, используя некоторые из этих наборов правил:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmd.maven.version}</version>
<configuration>
<skip>${skip.pmd}</skip>
<!--
<targetJdk>${maven.compiler.target}</targetJdk>
-->
<linkXRef>true</linkXRef>
<aggregate>false</aggregate>
<skipEmptyReport>false</skipEmptyReport>
<failOnViolation>true</failOnViolation>
<includeXmlInSite>true</includeXmlInSite>
<rulesets>
<ruleset>${project.parent.basedir}/../build-config/src/main/resources/docsite/build/config/pmd-java.xml</ruleset>
</rulesets>
</configuration>
<dependencies>
</plugin>
Теперь я хотел бы добавить наборы правил, определенные:
- net.sourceforge.pmd: pmd-vm
- net.sourceforge.pmd: pmd-xml
Страницы:
- Использование наборов правил http://maven.apache.org/plugins/maven-pmd-plugin/examples/usingRuleSets.html
- Анализ кода JavaScript http://maven.apache.org/plugins/maven-pmd-plugin/examples/javascriptReport.html.
кажутся устаревшими и не помогли.
Любая помощь будет оценена по достоинству.
Обновлять:
О странице «Анализ кода JavaScript»: внутри отчета зависимости могут быть объявлены только в конфигурации, а не непосредственно в объявлении плагина. Так что да, ИМО, эта страница устарела.
Когда зависимость находится в нужном месте, все работает нормально, но зависимость бесполезна, поскольку net.sourceforge.pmd: pmd-javascript встроен в maven-pmd-plugin. Таким образом, пример работает очень хорошо с объявлением зависимости или без него.
Теперь с набором правил "vm-basic" ничего не работает. Поскольку net.sourceforge.pmd: pmd-vm не встроен в maven-pmd-plugin, требуется объявление зависимости, то есть:
<reporting>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.3</version>
<configuration>
<rulesets>
<ruleset>vm-basic</ruleset>
</rulesets>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-vm</artifactId>
<version>5.2.1</version>
</dependency>
</dependencies>
</configuration>
</plugin>
</plugins>
</reporting>
генерирует эту ошибку:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.4:site (default-site) on project stage-plugin1: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.4:site failed. NullPointerException -> [Help 1]
Как только я удаляю набор правил "vm-basic", все работает нормально, но отчета pmd нет ...