/** * Collects the transitive dependencies of an artifact and builds a dependency graph. Note that this operation is * only concerned about determining the coordinates of the transitive dependencies. To also resolve the actual * artifact files, use {@link #resolveDependencies(DependencyRequest)}. * * @param request The collection request, must not be {@code null} * @return The collection result, never {@code null}. * @throws org.sonatype.aether.collection.DependencyCollectionException If the dependency tree could not be built. * @see RepositorySystemSession#getDependencyTraverser() * @see RepositorySystemSession#getDependencyManager() * @see RepositorySystemSession#getDependencySelector() * @see RepositorySystemSession#getDependencyGraphTransformer() */ public CollectResult collectDependencies( CollectRequest request ) throws DependencyCollectionException { return repository.collectDependencies(session, request); }
CollectResult collectedDependencies = repoSystem.collectDependencies(repoSession, request);
@Override protected List<File> resolve(String fqtn) throws Exception { StringTokenizer tokenizer = new StringTokenizer(fqtn, ":", false); String groupId = tokenizer.nextToken(); String templateId = tokenizer.nextToken(); String version = tokenizer.nextToken(); Dependency dependency = new Dependency(new DefaultArtifact(groupId + ':' + templateId + ':' + version), null); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(dependency); collectRequest.addRepository(local); collectRequest.addRepository(central); RepositorySystemSession session = newSession(repoSystem); DependencyNode node = repoSystem.collectDependencies(session, collectRequest).getRoot(); DependencyRequest dependencyRequest = new DependencyRequest(node, null); repoSystem.resolveDependencies(session, dependencyRequest); PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); node.accept(nlg); return nlg.getFiles(); }
protected DependencyNode resolveDepedencies(RepositorySystem repositorySystem, MavenRepositorySystemSession session, List<RemoteRepository> repos, DependencyNode pomNode, Dependency dependency, final Filter<Dependency> shouldExclude) throws FailedToResolveDependency { if (!DependencyFilters.matches(dependency, shouldExclude)) { CollectRequest request = new CollectRequest(dependency, repos); //request.setRequestContext("runtime"); try { DependencyNode node = repositorySystem.collectDependencies(session, request).getRoot(); repositorySystem.resolveDependencies(session, node, new DependencyFilter() { @Override public boolean accept(DependencyNode node, List<DependencyNode> parents) { boolean answer = !DependencyFilters.matches(node, shouldExclude); return answer; } }); return node; } catch (DependencyCollectionException e) { handleDependencyResolveFailure(pomNode, dependency, e); } catch (ArtifactResolutionException e) { handleDependencyResolveFailure(pomNode, dependency, e); } } return null; }
protected DependencyNode resolveDepedencies(RepositorySystem repositorySystem, MavenRepositorySystemSession session, List<RemoteRepository> repos, DependencyNode pomNode, Dependency dependency, final Filter<Dependency> shouldExclude) throws FailedToResolveDependency { if (!DependencyFilters.matches(dependency, shouldExclude)) { CollectRequest request = new CollectRequest(dependency, repos); //request.setRequestContext("runtime"); try { DependencyNode node = repositorySystem.collectDependencies(session, request).getRoot(); repositorySystem.resolveDependencies(session, node, new DependencyFilter() { @Override public boolean accept(DependencyNode node, List<DependencyNode> parents) { boolean answer = !DependencyFilters.matches(node, shouldExclude); return answer; } }); return node; } catch (DependencyCollectionException e) { handleDependencyResolveFailure(pomNode, dependency, e); } catch (ArtifactResolutionException e) { handleDependencyResolveFailure(pomNode, dependency, e); } } return null; }
private CollectorResult collectDependencies( final ProjectBuildingRequest buildingRequest, CollectRequest request ) throws DependencyCollectorException { RepositorySystemSession session = (RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" ); @SuppressWarnings( "unchecked" ) List<RemoteRepository> aetherRepositories = (List<RemoteRepository>) Invoker.invoke( RepositoryUtils.class, "toRepos", List.class, buildingRequest.getRemoteRepositories() ); request.setRepositories( aetherRepositories ); try { return new Maven30CollectorResult( repositorySystem.collectDependencies( session, request ) ); } catch ( DependencyCollectionException e ) { throw new DependencyCollectorException( e.getMessage(), e ); } }
private List<Artifact> getArtifacts(String artifact) throws MojoExecutionException { Dependency dependency = new Dependency( new DefaultArtifact( artifact ), "runtime" ); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( dependency ); //collectRequest.addRepository( remoteRepos ); DependencyNode node; try { node = repoSystem.collectDependencies( repoSession, collectRequest ).getRoot(); } catch (DependencyCollectionException e) { throw new MojoExecutionException( e.getMessage(), e ); } DependencyRequest dependencyRequest = new DependencyRequest( node, null ); Set<String> included = Collections.singleton("runtime"); dependencyRequest.setFilter(new ScopeDependencyFilter(included, Collections.EMPTY_SET)); try { repoSystem.resolveDependencies( repoSession, dependencyRequest ); } catch (DependencyResolutionException e) { throw new MojoExecutionException( e.getMessage(), e ); } PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); node.accept( nlg ); getLog().info( "" + nlg.getClassPath() ); return nlg.getArtifacts(false); }
public AetherResult resolve(String groupId, String artifactId, String version, String extension, String classifier, List<RemoteRepository> repos) throws PlexusContainerException, ComponentLookupException, DependencyCollectionException, DependencyResolutionException { if (Strings.isBlank(extension) || extension.equals("bundle")) { extension = DEFAULT_EXTENSION; } if (classifier == null) { classifier = DEFAULT_CLASSIFIER; } RepositorySystemSession session = newSession(); Dependency dependency = new Dependency(new DefaultArtifact(groupId, artifactId, classifier, extension, version), "runtime"); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(dependency); RemoteRepository[] repoArray = new RemoteRepository[repos.size()]; repos.toArray(repoArray); for (RemoteRepository repo : repoArray) { collectRequest.addRepository(repo); } RepositorySystem system = getRepositorySystem(); DependencyNode rootNode = system.collectDependencies(session, collectRequest).getRoot(); DependencyRequest dependencyRequest = new DependencyRequest(); dependencyRequest.setRoot(rootNode); system.resolveDependencies(session, dependencyRequest); PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); rootNode.accept(nlg); return new AetherResult(rootNode, nlg.getFiles(), nlg.getClassPath()); }
private void resolve( ResolveRequest resolveRequest ) { RepositorySystem system = newRepositorySystem(); RepositorySystemSession session = newRepositorySystemSession( system, resolveRequest.localRepoDir ); org.sonatype.aether.artifact.Artifact artifact = new DefaultArtifact( resolveRequest.groupId + ":" + resolveRequest.artifactId + ":" + resolveRequest.version ); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( new Dependency( artifact, "" ) ); // add remote repositories for ( RemoteRepository remoteRepository : resolveRequest.remoteRepositories ) { collectRequest.addRepository( new org.sonatype.aether.repository.RemoteRepository( remoteRepository.getId(), "default", remoteRepository.getUrl() ) ); } collectRequest.setRequestContext( "project" ); //collectRequest.addRepository( repo ); try { CollectResult collectResult = system.collectDependencies( session, collectRequest ); collectResult.getRoot().accept( resolveRequest.dependencyVisitor ); log.debug( "test" ); } catch ( DependencyCollectionException e ) { log.error( e.getMessage(), e ); } }
DependencyNode node = repositorySystem.collectDependencies(session, request).getRoot();
public DependencyTreeResult collectDependencies(String groupId, String artifactId, String version, String extension, String classifier) throws RepositoryException, ArtifactResolutionException, IOException, XmlPullParserException { Dependency dependency = new Dependency(new DefaultArtifact(groupId, artifactId, classifier, extension, version), "runtime"); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(dependency); List<RemoteRepository> repos = getRemoteRepositories(); for (RemoteRepository repo : repos) { collectRequest.addRepository(repo); } RepositorySystem repositorySystem = getRepositorySystem(); MavenRepositorySystemSession session = createRepositorSystemSession(offline, repositorySystem); DependencyNode rootNode = repositorySystem.collectDependencies(session, collectRequest).getRoot(); repositorySystem.resolveDependencies(session, rootNode, null); DependencyTreeResult result = new DependencyTreeResult(rootNode); return result; }