Johannes Wienke created MCHECKSTYLE-299:
-------------------------------------------

             Summary: build type check goal ignored source options when using 
phases "test site"
                 Key: MCHECKSTYLE-299
                 URL: https://issues.apache.org/jira/browse/MCHECKSTYLE-299
             Project: Maven Checkstyle Plugin
          Issue Type: Bug
          Components: checkstyle:check
    Affects Versions: 2.15
         Environment: Apache Maven 3.3.3 
(7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)
Maven home: /homes/jwienke/local/trusty/x86_64/opt/apache-maven-3.3.3
Java version: 1.8.0_05, vendor: Oracle Corporation
Java home: /vol/ai/java/versions/x64/jdk1.8.0_05/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.18.1-tf1-ll", arch: "amd64", family: "unix"
            Reporter: Johannes Wienke


I have a project where we enforce a zero-warnings policy. For this purpose we 
have included a call to {{checkstyle:check}} in the build phase using the 
following configuration:

{code:xml}
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.15</version>
    <configuration>
        
<configLocation>${project.basedir}/codecheck/checkstyle.xml</configLocation>
        
<propertyExpansion>config_loc=${project.basedir}/codecheck</propertyExpansion>
        <includeTestSourceDirectory>true</includeTestSourceDirectory>
        <consoleOutput>true</consoleOutput>
        <violationSeverity>warning</violationSeverity>
        <failOnViolation>true</failOnViolation>
        <sourceDirectory>${project.basedir}/src</sourceDirectory>
    </configuration>
    <executions>
        <execution>
            <id>checkstyle-validate</id>
            <phase>validate</phase>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>
{code}

Additionally, checkstyle is set up as a reporting goal in the reporting section:

{code:xml}
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.15</version>
    <configuration>
        
<configLocation>${project.basedir}/codecheck/checkstyle.xml</configLocation>
        
<propertyExpansion>config_loc=${project.basedir}/codecheck</propertyExpansion>
        <includeTestSourceDirectory>true</includeTestSourceDirectory>
        <sourceDirectory>${project.basedir}/src</sourceDirectory>
    </configuration>
</plugin>
{code}

The project contains multiple source trees and some contain generated code. 
Therefore it is necessary to restrict checkstyle to only one of these trees 
where the manually maintained code lives. Otherwise, the build would  fail due 
to warnings being detected in generated code.

This shown configuration works well when calling maven all of the following 
ways:
{noformat}
mvn compile
mvn test
mvn site
mvn test site
{noformat}

However, when changing the deprecated {{sourceDirectory}} elements to the list 
syntax with {{sourceDirectories}}, the last call {{mvn test site}} starts to 
fail and ignores the specified source directories. All previous other calls 
still work as expected.

When looking at the effective configuration using {{mvn -X}} I could see, that 
in the last call version with "test site", the {{sourceDirectories}} list of 
the check goal is again the complete list of source trees instead of the 
specified one.

Since we are also using some plugins to include the generated code etc., a 
reference to the complete POM might be helpful for debugging:
https://code.cor-lab.org/projects/rsb/repository/rsb-java/revisions/master/entry/pom.xml



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

Reply via email to