I’m using an example from here with maven-resolver 1.9.20 for a simple hello world style transitive dependency resolve:
var repoSystem = new RepositorySystemSupplier().get();
var session = MavenRepositorySystemUtils.newSession();
var localRepo = new LocalRepository("target/local-repo");
session.setLocalRepositoryManager(repoSystem.newLocalRepositoryManager(session, localRepo));
var artifact = new DefaultArtifact("commons-validator:commons-validator:1.9.0");
var central = new RemoteRepository
.Builder("central", "default", "https://repo.maven.apache.org/maven2/")
.build();
var collectRequest = new CollectRequest();
collectRequest.setRoot(new Dependency(artifact, JavaScopes.COMPILE));
collectRequest.addRepository(central);
var classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE);
var dependencyRequest = new DependencyRequest(collectRequest, classpathFilter);
var artifactResults = repoSystem.resolveDependencies(session, dependencyRequest).getArtifactResults();
for (var artifactResult : artifactResults) {
System.out.println(
artifactResult.getArtifact() +
" resolved to " +
artifactResult.getArtifact().getFile());
}
But I only get the following output:
commons-validator:commons-validator:jar:1.9.0 resolved to …/dependency-resolver/target/local-repo/commons-validator/commons-validator/1.9.0/commons-validator-1.9.0.jar
How can I get the transitive compile dependencies of commons-validator
(e.g. commons-beanutils
, commons-collections
, …) as well?