Reputation: 89
I have a maven project and I am trying to get all the transitive dependencies of direct dependency using Artifact resolver APIs.How to attain this programmatically?
The same functionality I am able to attain using aether-1.1.0.But we need to migrate to Maven Artifact Resolver{https://maven.apache.org/resolver/index.html}.I tried few things like below,
@Component
private org.apache.maven.repository.RepositorySystem repoSystem;
..
ArtifactRepository artifactRepo = new MavenArtifactRepository();
org.apache.maven.repository.Proxy mavenProxy = new org.apache.maven.repository.Proxy();
mavenProxy.setHost(proxyDetails.getHost());
mavenProxy.setPort(proxyDetails.getPort());
Artifact sourcesArtifact = repoSystem.createArtifact(rootGroupId, rootArtifact, rootVersion, JavaScopes.COMPILE,"jar");
sourcesArtifact.setRepository(artifactRepo);
ArtifactResolutionRequest request2 = new ArtifactResolutionRequest().setArtifact(sourcesArtifact);
ArtifactResolutionResult depResult =repoSystem.resolve(request2);
result2.getArtifacts().forEach(dep5 -> {
System.out.println(dep5.getId());
....}
But it is not printing any transitive dependencies here
Expected Result is : I need the list of transitive dependency for the given direct dependency.
Upvotes: 0
Views: 508
Reputation: 8163
Use org.eclipse.aether.resolution.DependencyRequest, the javadoc states:
A request to resolve transitive dependencies. This request can either be supplied with a CollectRequest to calculate the transitive dependencies or with an already resolved dependency graph.
This is then used as an argument to RepositorySystem.resolveDependencies
Upvotes: 0