1 package org.apache.maven.resolver.examples;
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.resolver.examples.util.Booter;
23 import org.apache.maven.resolver.examples.util.ReverseTreeRepositoryListener;
24 import org.eclipse.aether.DefaultRepositorySystemSession;
25 import org.eclipse.aether.RepositorySystem;
26 import org.eclipse.aether.artifact.Artifact;
27 import org.eclipse.aether.artifact.DefaultArtifact;
28 import org.eclipse.aether.collection.CollectRequest;
29 import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
30 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
31 import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
32 import org.eclipse.aether.util.graph.transformer.ConflictResolver;
33 import org.eclipse.aether.util.listener.ChainedRepositoryListener;
34
35
36
37
38 public class ReverseDependencyTree
39 {
40
41
42
43
44
45
46 public static void main( String[] args )
47 throws Exception
48 {
49 System.out.println( "------------------------------------------------------------" );
50 System.out.println( ReverseDependencyTree.class.getSimpleName() );
51
52 RepositorySystem system = Booter.newRepositorySystem( Booter.selectFactory( args ) );
53
54 DefaultRepositorySystemSession session = Booter.newRepositorySystemSession( system );
55
56
57 session.setRepositoryListener( new ChainedRepositoryListener( session.getRepositoryListener(),
58 new ReverseTreeRepositoryListener() ) );
59
60 session.setConfigProperty( ConflictResolver.CONFIG_PROP_VERBOSE, true );
61 session.setConfigProperty( DependencyManagerUtils.CONFIG_PROP_VERBOSE, true );
62
63 Artifact artifact = new DefaultArtifact( "org.apache.maven:maven-resolver-provider:3.6.1" );
64
65 ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
66 descriptorRequest.setArtifact( artifact );
67 descriptorRequest.setRepositories( Booter.newRepositories( system, session ) );
68 ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest );
69
70 CollectRequest collectRequest = new CollectRequest();
71 collectRequest.setRequestContext( "demo" );
72 collectRequest.setRootArtifact( descriptorResult.getArtifact() );
73 collectRequest.setDependencies( descriptorResult.getDependencies() );
74 collectRequest.setManagedDependencies( descriptorResult.getManagedDependencies() );
75 collectRequest.setRepositories( descriptorRequest.getRepositories() );
76
77 system.collectDependencies( session, collectRequest );
78
79
80
81 }
82
83 }