1 package org.apache.maven.plugins.checkstyle;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.util.List;
24 import java.util.Locale;
25
26 import org.apache.maven.model.Resource;
27 import org.apache.maven.plugins.annotations.Mojo;
28 import org.apache.maven.plugins.annotations.ResolutionScope;
29 import org.apache.maven.plugins.checkstyle.exec.CheckstyleExecutorRequest;
30 import org.apache.maven.project.MavenProject;
31 import org.apache.maven.reporting.MavenReportException;
32
33
34
35
36
37
38
39
40
41
42 @Mojo( name = "checkstyle", requiresDependencyResolution = ResolutionScope.COMPILE, threadSafe = true )
43 public class CheckstyleReport
44 extends AbstractCheckstyleReport
45 {
46
47
48 protected MavenProject getProject()
49 {
50 return project;
51 }
52
53
54 public void executeReport( Locale locale )
55 throws MavenReportException
56 {
57 super.executeReport( locale );
58 }
59
60
61
62
63 protected CheckstyleExecutorRequest createRequest()
64 throws MavenReportException
65 {
66 CheckstyleExecutorRequest request = new CheckstyleExecutorRequest();
67 request.setConsoleListener( getConsoleListener() ).setConsoleOutput( consoleOutput )
68 .setExcludes( excludes ).setFailsOnError( failsOnError ).setIncludes( includes )
69 .setResourceIncludes( resourceIncludes )
70 .setResourceExcludes( resourceExcludes )
71 .setIncludeResources( includeResources )
72 .setIncludeTestResources( includeTestResources )
73 .setIncludeTestSourceDirectory( includeTestSourceDirectory ).setListener( getListener() )
74 .setProject( project ).setSourceDirectories( getSourceDirectories() )
75 .setResources( resources )
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 public String getOutputName()
86 {
87 return "checkstyle";
88 }
89
90
91 public boolean canGenerateReport()
92 {
93 if ( skip )
94 {
95 return false;
96 }
97
98
99 for ( File sourceDirectory : getSourceDirectories() )
100 {
101 if ( sourceDirectory.exists() )
102 {
103 return true;
104 }
105 }
106
107 if ( includeTestSourceDirectory )
108 {
109 for ( File testSourceDirectory : getTestSourceDirectories() )
110 {
111 if ( testSourceDirectory.exists() )
112 {
113 return true;
114 }
115 }
116 }
117
118 return ( ( includeResources && hasResources( resources ) )
119 || ( includeTestResources && hasResources( testResources ) )
120 );
121 }
122
123
124
125
126
127
128 private boolean hasResources( List<Resource> resources )
129 {
130 for ( Resource resource : resources )
131 {
132 if ( new File( resource.getDirectory() ).exists() )
133 {
134 return true;
135 }
136 }
137 return false;
138 }
139
140 }