1 package org.apache.maven.plugin.dependency.resolvers;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.artifact.Artifact;
23 import org.apache.maven.artifact.repository.ArtifactRepository;
24 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
25 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
26 import org.apache.maven.artifact.resolver.ResolutionListener;
27 import org.apache.maven.artifact.resolver.ResolutionNode;
28 import org.apache.maven.plugin.MojoExecutionException;
29 import org.apache.maven.plugin.dependency.AbstractDependencyMojo;
30 import org.apache.maven.plugins.annotations.Mojo;
31 import org.apache.maven.plugins.annotations.ResolutionScope;
32 import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;
33
34 import java.util.ArrayList;
35 import java.util.HashSet;
36 import java.util.Set;
37
38
39
40
41
42
43
44
45
46 @Mojo( name = "list-repositories", requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true )
47 public class ListRepositoriesMojo
48 extends AbstractDependencyMojo
49 {
50
51
52
53
54
55 public void execute()
56 throws MojoExecutionException
57 {
58 try
59 {
60 ArtifactResolutionResult result =
61 this.artifactCollector.collect( project.getArtifacts(), project.getArtifact(), this.getLocal(),
62 this.remoteRepos, this.artifactMetadataSource,
63 new ScopeArtifactFilter( Artifact.SCOPE_TEST ),
64 new ArrayList<ResolutionListener>() );
65 Set<ArtifactRepository> repos = new HashSet<ArtifactRepository>();
66 Set<ResolutionNode> nodes = result.getArtifactResolutionNodes();
67 for ( ResolutionNode node : nodes )
68 {
69 repos.addAll( node.getRemoteRepositories() );
70 }
71
72 this.getLog().info( "Repositories Used by this build:" );
73 for ( ArtifactRepository repo : repos )
74 {
75 this.getLog().info( repo.toString() );
76 }
77 }
78 catch ( ArtifactResolutionException e )
79 {
80 throw new MojoExecutionException( "Unable to resolve artifacts", e );
81 }
82 }
83 }