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