1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.report.projectinfo;
20
21 import javax.inject.Inject;
22
23 import java.util.Locale;
24
25 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
26 import org.apache.maven.plugins.annotations.Mojo;
27 import org.apache.maven.plugins.annotations.ResolutionScope;
28 import org.apache.maven.project.DefaultProjectBuildingRequest;
29 import org.apache.maven.project.ProjectBuilder;
30 import org.apache.maven.project.ProjectBuildingRequest;
31 import org.apache.maven.report.projectinfo.dependencies.ManagementDependencies;
32 import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils;
33 import org.apache.maven.report.projectinfo.dependencies.renderer.DependencyManagementRenderer;
34 import org.apache.maven.reporting.MavenReportException;
35 import org.apache.maven.repository.RepositorySystem;
36 import org.codehaus.plexus.i18n.I18N;
37
38
39
40
41
42
43
44 @Mojo(name = "dependency-management", requiresDependencyResolution = ResolutionScope.TEST)
45 public class DependencyManagementReport extends AbstractProjectInfoReport {
46
47
48
49
50
51
52
53
54 private ManagementDependencies managementDependencies;
55
56
57
58
59
60
61
62
63
64
65 protected final ArtifactMetadataSource artifactMetadataSource;
66
67 private final RepositoryUtils repoUtils;
68
69 @Inject
70 protected DependencyManagementReport(
71 RepositorySystem repositorySystem,
72 I18N i18n,
73 ProjectBuilder projectBuilder,
74 ArtifactMetadataSource artifactMetadataSource,
75 RepositoryUtils repoUtils) {
76 super(repositorySystem, i18n, projectBuilder);
77 this.artifactMetadataSource = artifactMetadataSource;
78 this.repoUtils = repoUtils;
79 }
80
81
82
83
84
85 @Override
86 public boolean canGenerateReport() throws MavenReportException {
87 boolean result = super.canGenerateReport();
88 if (result && skipEmptyReport) {
89 result = getManagementDependencies().hasDependencies();
90 }
91
92 return result;
93 }
94
95 @Override
96 public void executeReport(Locale locale) {
97 ProjectBuildingRequest buildingRequest =
98 new DefaultProjectBuildingRequest(getSession().getProjectBuildingRequest());
99 buildingRequest.setLocalRepository(getSession().getLocalRepository());
100 buildingRequest.setRemoteRepositories(remoteRepositories);
101 buildingRequest.setPluginArtifactRepositories(pluginRepositories);
102 buildingRequest.setProcessPlugins(false);
103
104 DependencyManagementRenderer r = new DependencyManagementRenderer(
105 getSink(),
106 locale,
107 getI18N(locale),
108 getLog(),
109 getManagementDependencies(),
110 artifactMetadataSource,
111 repositorySystem,
112 buildingRequest,
113 repoUtils,
114 getLicenseMappings());
115 r.render();
116 }
117
118
119
120
121 public String getOutputName() {
122 return "dependency-management";
123 }
124
125 @Override
126 protected String getI18Nsection() {
127 return "dependency-management";
128 }
129
130
131
132
133
134 private ManagementDependencies getManagementDependencies() {
135 if (managementDependencies != null) {
136 return managementDependencies;
137 }
138
139 if (project.getDependencyManagement() == null) {
140 managementDependencies = new ManagementDependencies(null);
141 } else {
142 managementDependencies =
143 new ManagementDependencies(project.getDependencyManagement().getDependencies());
144 }
145
146 return managementDependencies;
147 }
148 }