[ 
https://issues.apache.org/jira/browse/MPMD-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14572474#comment-14572474
 ] 

Andreas Dangel commented on MPMD-171:
-------------------------------------

Ah, now I see the problem, too.

So, there are two ways, to get it working:

1. Move the configuration directly under the plugin. currently you have it 
under the execution. When "pmd:check" is executed, it calls "pmd:pmd" to 
actually run pmd, but with an "execution id" of "pmd" - but the configuration 
is known only as "pmd-check". Moving the configuration above the execution, it 
applies for both "pmd:pmd" and "pmd:check".

{code}
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.4</version>
                <configuration>
                    <targetJdk>${target.java.version}</targetJdk>
                    <rulesets>
                        
<ruleset>${project.basedir}/codecheck/pmd-rules.xml</ruleset>
                    </rulesets>
                    <excludeRoots>
                        <excludeRoot>target/generated-protocol</excludeRoot>
                        <excludeRoot>spread-src</excludeRoot>
                    </excludeRoots>
                    <failOnViolation>false</failOnViolation>
                    <verbose>true</verbose>
                </configuration>
                <executions>
                    <execution>
                        <id>pmd-check</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                            <goal>cpd-check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
{code}

2. Alternatively change the execution id from "pmd-check" to simply "pmd".

{code}
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.4</version>
                <executions>
                    <execution>
                        <id>pmd</id>
                        <phase>validate</phase>
                        <configuration>
                            <targetJdk>${target.java.version}</targetJdk>
                            <rulesets>
                                
<ruleset>${project.basedir}/codecheck/pmd-rules.xml</ruleset>
                            </rulesets>
                            <excludeRoots>
                                
<excludeRoot>target/generated-protocol</excludeRoot>
                                <excludeRoot>spread-src</excludeRoot>
                            </excludeRoots>
                            <failOnViolation>false</failOnViolation>
                            <verbose>true</verbose>
                        </configuration>
                        <goals>
                            <goal>check</goal>
                            <goal>cpd-check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
{code}

Hope this works :)

> Rule properties are ignored when run under MPMD
> -----------------------------------------------
>
>                 Key: MPMD-171
>                 URL: https://issues.apache.org/jira/browse/MPMD-171
>             Project: Maven PMD Plugin
>          Issue Type: Bug
>          Components: PMD
>    Affects Versions: 3.0.1
>         Environment: Linux
>            Reporter: Johannes Wienke
>            Assignee: Michael Osipov
>             Fix For: 3.3, 3.4
>
>
> For our project I have defined a custom ruleset for PMD in an XML file [1]. 
> This ruleset defines properties for some of the standard PMD rules using this 
> syntax:
> {noformat}
> <rule ref="rulesets/java/naming.xml/LongVariable">
>     <properties>
>         <property name="minimum" value="25"/>
>     </properties>
> </rule>
> {noformat}
> When I execute PMD using a parallel ant file we maintain, these custom 
> properties are respected correctly. However, when executing PMD through 
> maven, the properties are completely ignored.
> The pom.xml we are using is available at [2].
> [1] 
> https://code.cor-lab.org/projects/rsb/repository/rsb-java/revisions/7e71d4d3e6d57c8529111a7f7143edeb48ddec59/entry/codecheck/pmd-rules.xml
> [2] 
> https://code.cor-lab.org/projects/rsb/repository/rsb-java/revisions/ff17c0dd008697f70dad27bd0319f4475ab87712/entry/pom.xml



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to