Reputation: 1953
I am trying to implement a new XPath PMD rule based on the example from the book "Jenkins Continuous Integration Cookbook".
My pom file's relevant section:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<targetJdk>1.6</targetJdk>
<format>xml</format>
<rulesets>
<ruleset>password_ruleset.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
I have the file 'password_ruleset.xml' sitting in the root of my maven project and it looks as follows:
<?xml version="1.0"?>
<ruleset name="STUPID PASSWORDS ruleset"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>
Lets find stupid password examples
</description>
<rule name="NO_PASSWORD"
message="If we see a PASSWORD we should flag"
class="net.sourceforge.pmd.rules.XPathRule">
<description>
If we see a PASSWORD we should flag
</description>
<properties>
<property name="xpath">
<value>
<![CDATA[
//VariableDeclaratorId[@Image='PASSWORD']
]]>
While executing i got the following error:
Failure executing PMD: Couldn't find the class net.sourceforge.pmd.rules.XPathRule
Checking which libraries contains this class i realized it's 'pmd' itself. I tried to add the dependency to the dependencies section without luck.
Where and what should i change to overcome this?
Please see the whole setup in github: https://github.com/dave00/pmdcustomrule
Upvotes: 2
Views: 1645
Reputation: 1953
A friend of mine resolved my problem via github: https://github.com/mnyeste/pmdcustomrule/commit/ad2f04e33d2a5a04ef95d059d64a258ebca5b7be
Summary:
PMD API change 4.3 -> 5.0 Class net.sourceforge.pmd.rules.XPathRule has been renamed to net.sourceforge.pmd.lang.rule.XPathRule
Maven PMD plugin version 3.2 is using PMD 5.1.2
Anyone interested can now pull my example project from github to see this working.
Upvotes: 1