1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.dependency.resolvers;
20
21 import java.io.File;
22 import java.util.LinkedHashSet;
23 import java.util.Set;
24 import org.apache.maven.artifact.Artifact;
25 import org.apache.maven.plugins.annotations.Parameter;
26 import org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo;
27 import org.apache.maven.plugins.dependency.utils.DependencyUtil;
28 import org.apache.maven.project.ProjectBuildingRequest;
29 import org.apache.maven.shared.artifact.filter.collection.ArtifactIdFilter;
30 import org.apache.maven.shared.artifact.filter.collection.ClassifierFilter;
31 import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts;
32 import org.apache.maven.shared.artifact.filter.collection.GroupIdFilter;
33 import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
34 import org.apache.maven.shared.artifact.filter.collection.TypeFilter;
35 import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
36 import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
37 import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException;
38
39
40
41
42 public abstract class AbstractResolveMojo extends AbstractDependencyFilterMojo {
43
44
45
46
47
48
49 @Parameter(property = "outputFile")
50 protected File outputFile;
51
52
53
54
55
56
57 @Parameter(property = "appendOutput", defaultValue = "false")
58 protected boolean appendOutput;
59
60
61
62
63
64
65 @Parameter(property = "excludeReactor", defaultValue = "true")
66 protected boolean excludeReactor;
67
68
69
70
71 @Parameter
72 protected boolean useJvmChmod = true;
73
74
75
76
77 @Parameter
78 protected boolean ignorePermissions;
79
80
81
82
83 protected FilterArtifacts getArtifactsFilter() {
84 final FilterArtifacts filter = new FilterArtifacts();
85
86 if (excludeReactor) {
87
88 filter.addFilter(new ExcludeReactorProjectsArtifactFilter(reactorProjects, getLog()));
89 }
90
91 filter.addFilter(new ScopeFilter(
92 DependencyUtil.cleanToBeTokenizedString(this.includeScope),
93 DependencyUtil.cleanToBeTokenizedString(this.excludeScope)));
94
95 filter.addFilter(new TypeFilter(
96 DependencyUtil.cleanToBeTokenizedString(this.includeTypes),
97 DependencyUtil.cleanToBeTokenizedString(this.excludeTypes)));
98
99 filter.addFilter(new ClassifierFilter(
100 DependencyUtil.cleanToBeTokenizedString(this.includeClassifiers),
101 DependencyUtil.cleanToBeTokenizedString(this.excludeClassifiers)));
102
103 filter.addFilter(new GroupIdFilter(
104 DependencyUtil.cleanToBeTokenizedString(this.includeGroupIds),
105 DependencyUtil.cleanToBeTokenizedString(this.excludeGroupIds)));
106
107 filter.addFilter(new ArtifactIdFilter(
108 DependencyUtil.cleanToBeTokenizedString(this.includeArtifactIds),
109 DependencyUtil.cleanToBeTokenizedString(this.excludeArtifactIds)));
110
111 return filter;
112 }
113
114
115
116
117
118
119
120
121 protected Set<Artifact> resolveArtifactDependencies(final DependableCoordinate artifact)
122 throws DependencyResolverException {
123 ProjectBuildingRequest buildingRequest = newResolveArtifactProjectBuildingRequest();
124
125 Iterable<ArtifactResult> artifactResults =
126 getDependencyResolver().resolveDependencies(buildingRequest, artifact, null);
127
128 Set<Artifact> artifacts = new LinkedHashSet<>();
129
130 for (final ArtifactResult artifactResult : artifactResults) {
131 artifacts.add(artifactResult.getArtifact());
132 }
133
134 return artifacts;
135 }
136 }