/** * Resolve dependencies and return downloaded information of artifacts. * * @param dependencies the list of dependency * @return downloaded information of artifacts * @throws DependencyResolutionException If the dependency tree could not be built or any dependency * artifact could not be resolved. * @throws ArtifactResolutionException If the artifact could not be resolved. */ public List<ArtifactResult> resolve(List<Dependency> dependencies) throws DependencyResolutionException, ArtifactResolutionException { if (dependencies.size() == 0) { return Collections.EMPTY_LIST; } CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(dependencies.get(0)); for (int idx = 1; idx < dependencies.size(); idx++) { collectRequest.addDependency(dependencies.get(idx)); } for (RemoteRepository repository : remoteRepositories) { collectRequest.addRepository(repository); } DependencyFilter classpathFilter = DependencyFilterUtils .classpathFilter(JavaScopes.COMPILE, JavaScopes.RUNTIME); DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, classpathFilter); return system.resolveDependencies(session, dependencyRequest).getArtifactResults(); }
private static List<ArtifactResult> getTransitiveCompileDependencies(Artifact pArtifact, List<RemoteRepository> resolveFrom, RepositorySystem system, RepositorySystemSession session) throws Exception { List<String> included = Arrays.asList(new String[] { "compile", "runtime" }); List<String> excluded = Arrays.asList(new String[] { "provided", "system", "test" }); DependencyFilter filter = new ScopeDependencyFilter(included, excluded); try { CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(new Dependency(pArtifact, JavaScopes.COMPILE)); collectRequest.setRepositories(resolveFrom); DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, filter); DependencyResult resolveDependencies = system.resolveDependencies(session, dependencyRequest); // Note: The dependency graph is not filtered! So if a visitor walks through the graph it must apply the filters // again! resolveDependencies.getRoot() .accept(new FilteringDependencyVisitor(new ConsoleDependencyGraphDumper(), filter)); return resolveDependencies.getArtifactResults(); } catch (DependencyResolutionException e) { throw new Exception("Cannot resolve transitive dependencies for " + pArtifact, e); } }
List<Exception> collectExceptions = result.getCollectExceptions(); Set<File> files = new HashSet<File>(); List<ArtifactResult> artifactResults = result.getArtifactResults(); for (ArtifactResult artifactResult : artifactResults)
&& (dependencyFilter == null || dependencyFilter.accept(node1, parents))); node = repositoryState.getSystem().resolveDependencies(repositoryState.getSession(), dependencyRequest).getRoot(); } catch (DependencyResolutionException e) { logger.warn("Dependencies couldn't be resolved for request '{}', {}", collectRequest, e.getMessage()); node = e.getResult().getRoot(); logUnresolvedArtifacts(node, e); throw e;
DependencyResult result = new DependencyResult( request ); result.setRoot( request.getRoot() ); result.setRoot( collectResult.getRoot() ); result.setCycles( collectResult.getCycles() ); result.setCollectExceptions( collectResult.getExceptions() ); if ( result.getRoot() != null ) ( filter != null ) ? new FilteringDependencyVisitor( builder, filter ) : builder; visitor = new TreeDependencyVisitor( visitor ); result.getRoot().accept( visitor ); results = e.getResults(); result.setArtifactResults( results );
result.getRoot().accept(new TreeDependencyVisitor(new DependencyVisitor() { int depth = 0; failures.addAll(result.getCollectExceptions());
@Override public List<Exception> getCollectorExceptions() { return e.getResult().getCollectExceptions(); } };
DependencyResult result = new DependencyResult( request ); result.setRoot( request.getRoot() ); collectResult = e.getResult(); result.setRoot( collectResult.getRoot() ); result.setCycles( collectResult.getCycles() ); result.setCollectExceptions( collectResult.getExceptions() ); visitor = new TreeDependencyVisitor( visitor ); if ( result.getRoot() != null ) result.getRoot().accept( visitor ); results = e.getResults(); result.setArtifactResults( results );
result.getRoot().accept(new TreeDependencyVisitor(new DependencyVisitor() { int depth = 0; failures.addAll(result.getCollectExceptions());
process( result, repoSystem.resolveDependencies( session, depRequest ).getArtifactResults() ); process( result, e.getResult().getArtifactResults() );
dependencyResult.getRoot().accept(nlg);
/** * Given a set of maven coordinates, returns a set of jars which include all * of the specified coordinates and optionally their transitive dependencies. */ public Set<File> resolve(boolean withTransitives, Collection<String> mavenCoordinates) { Collection<Exclusion> excludeTransitive = new ArrayList<Exclusion>(1); if (!withTransitives) { excludeTransitive.add(EXCLUDE_ALL_TRANSITIVES); } List<Dependency> dependencies = mavenCoordinates.stream() .map(coordinateString -> new DefaultArtifact(coordinateString)) .map(artifact -> new Dependency(artifact, null, null, excludeTransitive)) .collect(toList()); CollectRequest collectRequest = new CollectRequest(dependencies, null, repositories); DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, null); DependencyResult dependencyResult = resolveDependencies(dependencyRequest); return dependencyResult.getArtifactResults() .stream() .peek(this::logResolved) .map(ArtifactResult::getArtifact) .map(Artifact::getFile) .collect(toSet()); }
private void installDependency(String groupId, String artifactId, String version, RepositorySystemSession session) throws DependencyResolutionException{ logger.info("Installing and Loading Dependency : {} - {} - {} ", groupId , artifactId, version); Dependency dependency = new Dependency( new DefaultArtifact(groupId, artifactId, "", "jar", version ), "compile" ); RemoteRepository central = new RemoteRepository.Builder( "central", "default", "http://central.maven.org/maven2/" ).build(); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( dependency ); collectRequest.addRepository( central ); DependencyRequest dependencyRequest = new DependencyRequest(); dependencyRequest.setCollectRequest( collectRequest ); system.resolveDependencies(session, dependencyRequest ).getRoot(); }
/** * Logs the paths for each dependency not found * * @param node root {@link DependencyNode}, can be a "null" root (imaginary root) * @param e {@link DependencyResolutionException} the error to collect paths. */ private void logUnresolvedArtifacts(DependencyNode node, DependencyResolutionException e) { List<ArtifactResult> artifactResults = e.getResult().getArtifactResults().stream() .filter(artifactResult -> !artifactResult.getExceptions().isEmpty()).collect(toList()); final List<String> patternInclusion = artifactResults.stream().map(artifactResult -> toId(artifactResult.getRequest().getArtifact())).collect(toList()); PathRecordingDependencyVisitor visitor = new PathRecordingDependencyVisitor(new PatternInclusionsDependencyFilter(patternInclusion), node.getArtifact() != null); node.accept(visitor); visitor.getPaths().stream().forEach(path -> { List<DependencyNode> unresolvedArtifactPath = path.stream().filter(dependencyNode -> dependencyNode.getArtifact() != null).collect(toList()); if (!unresolvedArtifactPath.isEmpty()) { logger.warn("Dependency path to not resolved artifacts -> {}", unresolvedArtifactPath.toString()); } }); }
private void installDependency(String groupId, String artifactId, String version, RepositorySystemSession session) throws DependencyResolutionException{ logger.info("Installing and Loading Dependency : {} - {} - {} ", groupId , artifactId, version); Dependency dependency = new Dependency( new DefaultArtifact(groupId, artifactId, "", "jar", version ), "compile" ); RemoteRepository central = new RemoteRepository.Builder( "central", "default", "http://central.maven.org/maven2/" ).build(); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( dependency ); collectRequest.addRepository( central ); DependencyRequest dependencyRequest = new DependencyRequest(); dependencyRequest.setCollectRequest( collectRequest ); system.resolveDependencies(session, dependencyRequest ).getRoot(); }
@Override public Iterator<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> iterator() { // CHECKSTYLE_OFF: LineLength Collection<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> artResults = new ArrayList<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult>( dependencyResults.getArtifactResults().size() ); // CHECKSTYLE_ON: LineLength for ( ArtifactResult artifactResult : dependencyResults.getArtifactResults() ) { artResults.add( new Maven31ArtifactResult( artifactResult ) ); } return artResults.iterator(); } };
private List<File> getFiles(DependencyResult dependencyResult) { List<File> files = new ArrayList<>(); for (ArtifactResult result : dependencyResult.getArtifactResults()) { files.add(result.getArtifact().getFile()); } return files; }
DependencyNode root = artifacts.getRoot(); ResourceFactory factory = getResourceFactory(); for (DependencyNode node : root.getChildren())