15
15
import org .apache .maven .artifact .resolver .ArtifactResolutionException ;
16
16
import org .apache .maven .artifact .resolver .ArtifactResolutionRequest ;
17
17
import org .apache .maven .artifact .resolver .ArtifactResolutionResult ;
18
+ import org .apache .maven .artifact .resolver .filter .ExclusionSetFilter ;
18
19
import org .apache .maven .model .Dependency ;
19
20
import org .apache .maven .project .MavenProject ;
20
21
import org .apache .maven .project .artifact .InvalidDependencyVersionException ;
@@ -27,13 +28,28 @@ public class ArtifactUtils {
27
28
private ArtifactUtils () {
28
29
29
30
}
31
+ public static Collection <Artifact > resolveTransitively (
32
+ final ArtifactFactory artifactFactory ,
33
+ final RepositorySystem artifactResolver ,
34
+ final ArtifactRepository localRepository ,
35
+ final ArtifactMetadataSource artifactMetadataSource ,
36
+ final Dependency [] dependencies , final MavenProject project )
37
+ throws InvalidDependencyVersionException ,
38
+ ArtifactResolutionException , ArtifactNotFoundException {
39
+ return resolveTransitively (
40
+ artifactFactory , artifactResolver ,
41
+ localRepository , artifactMetadataSource ,
42
+ dependencies , project ,
43
+ null );
44
+ }
30
45
31
46
public static Collection <Artifact > resolveTransitively (
32
47
final ArtifactFactory artifactFactory ,
33
48
final RepositorySystem artifactResolver ,
34
49
final ArtifactRepository localRepository ,
35
50
final ArtifactMetadataSource artifactMetadataSource ,
36
- final Dependency [] dependencies , final MavenProject project )
51
+ final Dependency [] dependencies , final MavenProject project ,
52
+ final String [] artifactExcludes )
37
53
throws InvalidDependencyVersionException ,
38
54
ArtifactResolutionException , ArtifactNotFoundException {
39
55
if (dependencies == null ) {
@@ -49,6 +65,10 @@ public static Collection<Artifact> resolveTransitively(
49
65
request .setResolveRoot (false );
50
66
request .setArtifact (project .getArtifact ());
51
67
request .setArtifactDependencies (artifacts );
68
+ if (artifactExcludes != null && artifactExcludes .length > 0 ) {
69
+ // remove dependencies from resolution
70
+ request .setCollectionFilter (new ExclusionSetFilter (artifactExcludes ));
71
+ }
52
72
request .setRemoteRepositories (project .getRemoteArtifactRepositories ());
53
73
request .setLocalRepository (localRepository );
54
74
0 commit comments