1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.internal;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.Set;
26 import java.util.stream.Collectors;
27
28 import org.apache.maven.execution.MavenSession;
29 import org.apache.maven.plugin.PluginValidationManager;
30 import org.apache.maven.plugin.descriptor.MojoDescriptor;
31 import org.codehaus.plexus.component.repository.ComponentDependency;
32
33
34
35
36
37
38 @Singleton
39 @Named
40 class Maven2DependenciesValidator extends AbstractMavenPluginDependenciesValidator {
41
42 @Inject
43 Maven2DependenciesValidator(PluginValidationManager pluginValidationManager) {
44 super(pluginValidationManager);
45 }
46
47 @Override
48 protected void doValidate(MavenSession mavenSession, MojoDescriptor mojoDescriptor) {
49 Set<String> maven2Versions = mojoDescriptor.getPluginDescriptor().getDependencies().stream()
50 .filter(d -> "org.apache.maven".equals(d.getGroupId()))
51 .filter(d -> !expectedProvidedScopeExclusions.contains(d.getGroupId() + ":" + d.getArtifactId()))
52 .map(ComponentDependency::getVersion)
53 .filter(v -> v.startsWith("2."))
54 .collect(Collectors.toSet());
55
56 if (!maven2Versions.isEmpty()) {
57 pluginValidationManager.reportPluginValidationIssue(
58 mavenSession,
59 mojoDescriptor,
60 "Plugin is a Maven 2.x plugin, which will be not supported in Maven 4.x");
61 }
62 }
63 }