Skip to content

Commit 0bcabd4

Browse files
committed
[MCHECKSTYLE-412] Exclude generated sources / test-sources from default source / test-source directories
1 parent 8c3b213 commit 0bcabd4

File tree

3 files changed

+52
-5
lines changed

3 files changed

+52
-5
lines changed

src/main/java/org/apache/maven/plugins/checkstyle/AbstractCheckstyleReport.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.io.FileOutputStream;
2626
import java.io.IOException;
2727
import java.io.OutputStream;
28+
import java.nio.file.Path;
2829
import java.util.ArrayList;
2930
import java.util.Calendar;
3031
import java.util.List;
@@ -826,7 +827,7 @@ protected List<File> getSourceDirectories()
826827
{
827828
if ( sourceDirectories == null )
828829
{
829-
sourceDirectories = project.getCompileSourceRoots();
830+
sourceDirectories = filterBuildTarget( project.getCompileSourceRoots() );
830831
}
831832
List<File> sourceDirs = new ArrayList<>( sourceDirectories.size() );
832833
for ( String sourceDir : sourceDirectories )
@@ -840,7 +841,7 @@ protected List<File> getTestSourceDirectories()
840841
{
841842
if ( testSourceDirectories == null )
842843
{
843-
testSourceDirectories = project.getTestCompileSourceRoots();
844+
testSourceDirectories = filterBuildTarget( project.getTestCompileSourceRoots() );
844845
}
845846
List<File> testSourceDirs = new ArrayList<>( testSourceDirectories.size() );
846847
for ( String testSourceDir : testSourceDirectories )
@@ -849,4 +850,21 @@ protected List<File> getTestSourceDirectories()
849850
}
850851
return testSourceDirs;
851852
}
853+
854+
private List<String> filterBuildTarget( List<String> sourceDirectories )
855+
{
856+
List<String> filtered = new ArrayList<>( sourceDirectories.size() );
857+
Path buildTarget = FileUtils.resolveFile( project.getBasedir(), project.getBuild().getDirectory() )
858+
.toPath();
859+
860+
for ( String sourceDir : sourceDirectories )
861+
{
862+
Path src = FileUtils.resolveFile( project.getBasedir(), sourceDir ).toPath();
863+
if ( !src.startsWith( buildTarget ) )
864+
{
865+
filtered.add( sourceDir );
866+
}
867+
}
868+
return filtered;
869+
}
852870
}

src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleViolationCheckMojo.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.io.IOException;
2828
import java.io.OutputStream;
2929
import java.io.Reader;
30+
import java.nio.file.Path;
3031
import java.util.ArrayList;
3132
import java.util.Collections;
3233
import java.util.List;
@@ -913,7 +914,7 @@ private List<File> getSourceDirectories()
913914
{
914915
if ( sourceDirectories == null )
915916
{
916-
sourceDirectories = project.getCompileSourceRoots();
917+
sourceDirectories = filterBuildTarget( project.getCompileSourceRoots() );
917918
}
918919
List<File> sourceDirs = new ArrayList<>( sourceDirectories.size() );
919920
for ( String sourceDir : sourceDirectories )
@@ -927,7 +928,7 @@ private List<File> getTestSourceDirectories()
927928
{
928929
if ( testSourceDirectories == null )
929930
{
930-
testSourceDirectories = project.getTestCompileSourceRoots();
931+
testSourceDirectories = filterBuildTarget( project.getTestCompileSourceRoots() );
931932
}
932933
List<File> testSourceDirs = new ArrayList<>( testSourceDirectories.size() );
933934
for ( String testSourceDir : testSourceDirectories )
@@ -936,5 +937,21 @@ private List<File> getTestSourceDirectories()
936937
}
937938
return testSourceDirs;
938939
}
939-
940+
941+
private List<String> filterBuildTarget( List<String> sourceDirectories )
942+
{
943+
List<String> filtered = new ArrayList<>( sourceDirectories.size() );
944+
Path buildTarget = FileUtils.resolveFile( project.getBasedir(), project.getBuild().getDirectory() )
945+
.toPath();
946+
947+
for ( String sourceDir : sourceDirectories )
948+
{
949+
Path src = FileUtils.resolveFile( project.getBasedir(), sourceDir ).toPath();
950+
if ( !src.startsWith( buildTarget ) )
951+
{
952+
filtered.add( sourceDir );
953+
}
954+
}
955+
return filtered;
956+
}
940957
}

src/test/java/org/apache/maven/plugins/checkstyle/CheckstyleViolationCheckMojoTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121

2222
import java.io.File;
2323
import java.util.Arrays;
24+
import java.util.Collections;
25+
import java.util.List;
2426

2527
import org.apache.maven.model.Build;
2628
import org.apache.maven.plugin.Mojo;
@@ -175,6 +177,16 @@ public File getFile()
175177
return new File( getBasedir(), "target/classes" );
176178
}
177179

180+
@Override
181+
public List<String> getCompileSourceRoots() {
182+
return Collections.emptyList();
183+
}
184+
185+
@Override
186+
public List<String> getTestCompileSourceRoots() {
187+
return Collections.emptyList();
188+
}
189+
178190
public Build getBuild()
179191
{
180192
return new Build()

0 commit comments

Comments
 (0)