1 package org.apache.maven.plugin.checkstyle;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.checkstyle.exec.CheckstyleExecutorRequest;
23 import org.apache.maven.plugins.annotations.Mojo;
24 import org.apache.maven.plugins.annotations.Parameter;
25 import org.apache.maven.plugins.annotations.ResolutionScope;
26 import org.apache.maven.project.MavenProject;
27 import org.apache.maven.reporting.MavenReportException;
28
29 import java.util.List;
30
31
32
33
34
35
36
37
38
39 @Mojo( name = "checkstyle-aggregate", aggregator = true, requiresDependencyResolution = ResolutionScope.COMPILE,
40 threadSafe = true )
41 public class CheckstyleAggregateReport
42 extends AbstractCheckstyleReport
43 {
44
45
46
47
48
49 @Parameter( property = "reactorProjects", readonly = true )
50 private List<MavenProject> reactorProjects;
51
52
53 protected MavenProject getProject()
54 {
55 return project;
56 }
57
58
59
60
61 protected CheckstyleExecutorRequest createRequest()
62 throws MavenReportException
63 {
64 CheckstyleExecutorRequest request = new CheckstyleExecutorRequest();
65 request.setAggregate( true )
66 .setReactorProjects( reactorProjects )
67 .setConsoleListener( getConsoleListener() ).setConsoleOutput( consoleOutput )
68 .setExcludes( excludes ).setFailsOnError( failsOnError ).setIncludes( includes )
69 .setIncludeResources( includeResources )
70 .setIncludeTestResources( includeTestResources )
71 .setResourceIncludes( resourceIncludes )
72 .setResourceExcludes( resourceExcludes )
73 .setIncludeTestSourceDirectory( includeTestSourceDirectory ).setListener( getListener() )
74 .setLog( getLog() ).setProject( project ).setSourceDirectories( getSourceDirectories() ).setResources( resources )
75 .setTestResources( testResources )
76 .setStringOutputStream( stringOutputStream ).setSuppressionsLocation( suppressionsLocation )
77 .setTestSourceDirectories( getTestSourceDirectories() ).setConfigLocation( configLocation )
78 .setPropertyExpansion( propertyExpansion ).setHeaderLocation( headerLocation )
79 .setCacheFile( cacheFile ).setSuppressionsFileExpression( suppressionsFileExpression )
80 .setEncoding( encoding ).setPropertiesLocation( propertiesLocation );
81 return request;
82 }
83
84
85
86 public String getOutputName()
87 {
88 return "checkstyle-aggregate";
89 }
90
91
92 public boolean canGenerateReport()
93 {
94
95 return !skip && project.isExecutionRoot() && reactorProjects.size() > 1;
96 }
97 }