1 package org.apache.maven.plugin.dependency;
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.Locale;
24 import java.util.ResourceBundle;
25
26 import org.apache.maven.doxia.sink.Sink;
27 import org.apache.maven.doxia.siterenderer.Renderer;
28 import org.apache.maven.project.MavenProject;
29 import org.apache.maven.reporting.AbstractMavenReport;
30 import org.apache.maven.reporting.MavenReportException;
31 import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalysis;
32 import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalyzer;
33 import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalyzerException;
34
35
36
37
38
39
40
41
42
43
44
45
46 public class AnalyzeReportMojo
47 extends AbstractMavenReport
48 {
49
50
51
52
53
54
55
56
57
58 private MavenProject project;
59
60
61
62
63
64
65
66
67 private ProjectDependencyAnalyzer analyzer;
68
69
70
71
72
73
74
75
76 private Renderer siteRenderer;
77
78
79
80
81
82
83
84
85 private File outputDirectory;
86
87
88
89
90
91
92 public void executeReport( Locale locale ) throws MavenReportException
93 {
94
95 if ( "pom".equals( project.getPackaging() ) )
96 {
97 getLog().info( "Skipping pom project" );
98 return;
99 }
100
101 if ( outputDirectory == null || !outputDirectory.exists() )
102 {
103 getLog().info( "Skipping project with no Target directory" );
104 return;
105 }
106
107
108 ProjectDependencyAnalysis analysis = null;
109 try
110 {
111 analysis = analyzer.analyze( project );
112 }
113 catch ( ProjectDependencyAnalyzerException exception )
114 {
115 throw new MavenReportException( "Cannot analyze dependencies", exception );
116 }
117
118
119 Sink sink = getSink();
120 ResourceBundle bundle = getBundle( locale );
121
122
123 AnalyzeReportView analyzethis = new AnalyzeReportView();
124 analyzethis.generateReport( analysis, sink, bundle );
125 }
126
127
128
129
130
131
132 public String getOutputName()
133 {
134 return "dependency-analysis";
135 }
136
137
138
139
140 public String getName( Locale locale )
141 {
142 return getBundle( locale ).getString( "analyze.report.name" );
143 }
144
145
146
147
148 public String getDescription( Locale locale )
149 {
150 return getBundle( locale ).getString( "analyze.report.description" );
151 }
152
153
154
155
156
157
158 protected MavenProject getProject()
159 {
160 return project;
161 }
162
163
164
165
166 protected String getOutputDirectory()
167 {
168 getLog().info( outputDirectory.toString() );
169
170 return outputDirectory.toString();
171 }
172
173
174
175
176 protected Renderer getSiteRenderer()
177 {
178 return siteRenderer;
179 }
180
181
182
183
184
185
186
187
188
189 protected ResourceBundle getBundle( Locale locale )
190 {
191 return ResourceBundle.getBundle( "analyze-report", locale, this.getClass().getClassLoader() );
192 }
193 }