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
25 import org.apache.maven.model.Resource;
26 import org.apache.maven.plugins.annotations.Mojo;
27 import org.apache.maven.plugins.annotations.ResolutionScope;
28 import org.apache.maven.plugins.checkstyle.exec.CheckstyleExecutorRequest;
29 import org.apache.maven.project.MavenProject;
30 import org.apache.maven.reporting.MavenReportException;
31
32
33
34
35
36
37
38
39
40
41 @Mojo( name = "checkstyle", requiresDependencyResolution = ResolutionScope.COMPILE, threadSafe = true )
42 public class CheckstyleReport
43 extends AbstractCheckstyleReport
44 {
45
46
47 protected MavenProject getProject()
48 {
49 return project;
50 }
51
52
53
54
55 protected CheckstyleExecutorRequest createRequest()
56 throws MavenReportException
57 {
58 CheckstyleExecutorRequest request = new CheckstyleExecutorRequest();
59 request.setConsoleListener( getConsoleListener() ).setConsoleOutput( consoleOutput )
60 .setExcludes( excludes ).setFailsOnError( failsOnError ).setIncludes( includes )
61 .setResourceIncludes( resourceIncludes )
62 .setResourceExcludes( resourceExcludes )
63 .setIncludeResources( includeResources )
64 .setIncludeTestResources( includeTestResources )
65 .setIncludeTestSourceDirectory( includeTestSourceDirectory ).setListener( getListener() )
66 .setProject( project ).setSourceDirectories( getSourceDirectories() )
67 .setResources( resources )
68 .setStringOutputStream( stringOutputStream ).setSuppressionsLocation( suppressionsLocation )
69 .setTestSourceDirectories( getTestSourceDirectories() ).setConfigLocation( configLocation )
70 .setPropertyExpansion( propertyExpansion ).setHeaderLocation( headerLocation )
71 .setCacheFile( cacheFile ).setSuppressionsFileExpression( suppressionsFileExpression )
72 .setEncoding( encoding ).setPropertiesLocation( propertiesLocation );
73 return request;
74 }
75
76
77 public String getOutputName()
78 {
79 return "checkstyle";
80 }
81
82
83 public boolean canGenerateReport()
84 {
85 if ( skip )
86 {
87 return false;
88 }
89
90
91 for ( File sourceDirectory : getSourceDirectories() )
92 {
93 if ( sourceDirectory.exists() )
94 {
95 return true;
96 }
97 }
98
99 if ( includeTestSourceDirectory )
100 {
101 for ( File testSourceDirectory : getTestSourceDirectories() )
102 {
103 if ( testSourceDirectory.exists() )
104 {
105 return true;
106 }
107 }
108 }
109
110 return ( ( includeResources && hasResources( resources ) )
111 || ( includeTestResources && hasResources( testResources ) )
112 );
113 }
114
115
116
117
118
119
120 private boolean hasResources( List<Resource> resources )
121 {
122 for ( Resource resource : resources )
123 {
124 if ( new File( resource.getDirectory() ).exists() )
125 {
126 return true;
127 }
128 }
129 return false;
130 }
131
132 }