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 org.apache.maven.api.DependencyScope;
26 import org.apache.maven.plugin.PluginValidationManager;
27 import org.eclipse.aether.RepositorySystemSession;
28 import org.eclipse.aether.artifact.Artifact;
29 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
30
31
32
33
34
35
36 @Singleton
37 @Named
38 class Maven3CompatDependenciesValidator extends AbstractMavenPluginDependenciesValidator {
39
40 @Inject
41 Maven3CompatDependenciesValidator(PluginValidationManager pluginValidationManager) {
42 super(pluginValidationManager);
43 }
44
45 @Override
46 protected void doValidate(
47 RepositorySystemSession session,
48 Artifact pluginArtifact,
49 ArtifactDescriptorResult artifactDescriptorResult) {
50 for (org.eclipse.aether.graph.Dependency dependency : artifactDescriptorResult.getDependencies()) {
51 if ("org.apache.maven".equals(dependency.getArtifact().getGroupId())
52 && "maven-compat".equals(dependency.getArtifact().getArtifactId())
53 && !DependencyScope.TEST.is(dependency.getScope())) {
54 pluginValidationManager.reportPluginValidationIssue(
55 PluginValidationManager.IssueLocality.EXTERNAL,
56 session,
57 pluginArtifact,
58 "Plugin depends on the deprecated Maven 2.x compatibility layer, which will be not supported in Maven 4.x");
59 }
60 }
61 }
62 }