List of usage examples for org.apache.maven.artifact.resolver ArtifactResolutionRequest setCollectionFilter
public ArtifactResolutionRequest setCollectionFilter(ArtifactFilter filter)
From source file:org.sonatype.gshell.commands.artifact.ResolveCommand.java
License:Apache License
public Object execute(final CommandContext context) throws Exception { assert context != null; IO io = context.getIo();/*ww w . j a v a2 s . c o m*/ RepositorySystem rsys = plexus.lookup(RepositorySystem.class); ArtifactResolutionRequest request = new ArtifactResolutionRequest(); String[] items = resolveId.split(":", 3); if (items.length != 3) { io.error("Invalid artifact resolution id: {}", resolveId); // TODO: i18n return Result.FAILURE; } String groupId = items[0]; String artifactId = items[1]; String version = items[2]; Artifact artifact; if (classifier != null) { artifact = rsys.createArtifactWithClassifier(groupId, artifactId, version, type, classifier); } else { artifact = rsys.createArtifact(groupId, artifactId, version, type); } io.println("Resolving artifact: {}", artifact); // TODO: i18n // // TODO: Bring the ArtifactManager/ArtifactRepsitoryManager back to manage these components request.setLocalRepository(rsys.createDefaultLocalRepository()); request.setRemoteRepositories(Collections.singletonList(rsys.createDefaultRemoteRepository())); request.setResolveRoot(true); request.setResolveTransitively(transitive); request.setArtifact(artifact); if (scope != null) { io.debug("Using scope: {}", scope); request.setCollectionFilter(new ScopeArtifactFilter(scope)); } request.setOffline(offline); request.setTransferListener(new ProgressSpinnerMonitor(io)); ArtifactResolutionResult result = rsys.resolve(request); Set<Artifact> artifacts = result.getArtifacts(); io.println("Resolved artifacts:"); // TODO: i18n for (Artifact a : artifacts) { io.println(" {}", a); } return Result.SUCCESS; }
From source file:org.sourcepit.maven.bootstrap.core.AbstractBootstrapper.java
License:Apache License
private ArtifactResolutionResult resolve(MavenSession session, MavenProject project, Dependency dependency) { final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setResolveRoot(true);// w ww.j av a2s. co m request.setResolveTransitively(true); final AndArtifactFilter artifactFilter = new AndArtifactFilter(); artifactFilter.add(new ScopeArtifactFilter(org.apache.maven.artifact.Artifact.SCOPE_RUNTIME_PLUS_SYSTEM)); artifactFilter.add(new ExclusionSetFilter(artifactFilterManager.getCoreArtifactExcludes())); request.setResolutionFilter(artifactFilter); request.setCollectionFilter(artifactFilter); final MavenExecutionRequest executionRequest = session.getRequest(); request.setForceUpdate(executionRequest.isUpdateSnapshots()); request.setServers(executionRequest.getServers()); request.setMirrors(executionRequest.getMirrors()); request.setProxies(executionRequest.getProxies()); request.setOffline(session.isOffline()); request.setLocalRepository(session.getLocalRepository()); // project specific request.setRemoteRepositories(project.getRemoteArtifactRepositories()); // important to NOT apply dep management here, leeds to unexpected side effects, e.g. when osgifier is managed in // project which is build. So separate deps from project which is build and build system is a good thing. // Note: we must explicitly set an empty map to prevent managed version resolution via maven session request.setManagedVersionMap(new HashMap<String, Artifact>()); request.setArtifact(repositorySystem.createDependencyArtifact(dependency)); final ArtifactResolutionResult result = repositorySystem.resolve(request); try { resolutionErrorHandler.throwErrors(request, result); } catch (ArtifactResolutionException e) { throw new IllegalStateException(e); } return result; }
From source file:org.sourcepit.osgifier.maven.context.MavenDependencyWalker.java
License:Apache License
private Set<Artifact> resolve(Request walkerRequest, Artifact artifact, MavenProject resolutionContext, boolean resolveRoot, List<Dependency> dependencies) { final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact);/*from www .jav a 2s .c o m*/ request.setResolveRoot(resolveRoot); request.setResolveTransitively(!resolveRoot); if (dependencies != null) { final Set<Artifact> artifactDependencies = new LinkedHashSet<Artifact>(); for (Dependency dependency : dependencies) { artifactDependencies.add(repositorySystem.createArtifactWithClassifier(dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getType(), dependency.getClassifier())); } request.setArtifactDependencies(artifactDependencies); } request.setLocalRepository(walkerRequest.getLocalRepository()); final List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>(); final Set<String> repoIds = new HashSet<String>(); final List<ArtifactRepository> requestRepos = walkerRequest.getRemoteRepositories(); if (requestRepos != null) { for (ArtifactRepository artifactRepository : requestRepos) { repoIds.add(artifactRepository.getId()); remoteRepositories.add(artifactRepository); } } if (resolutionContext != null) { for (ArtifactRepository artifactRepository : resolutionContext.getRemoteArtifactRepositories()) { if (repoIds.add(artifactRepository.getId())) { remoteRepositories.add(artifactRepository); } } request.setManagedVersionMap(resolutionContext.getManagedVersionMap()); } request.setRemoteRepositories(remoteRepositories); final ArtifactFilter artifactFilter = walkerRequest.getArtifactFilter(); request.setCollectionFilter(artifactFilter); request.setResolutionFilter(artifactFilter); ArtifactResolutionResult result = repositorySystem.resolve(request); final Exception ex; if (result.hasExceptions()) { ex = result.getExceptions().get(0); } else if (result.hasCircularDependencyExceptions()) { ex = result.getCircularDependencyException(0); } else if (result.hasErrorArtifactExceptions()) { ex = result.getErrorArtifactExceptions().get(0); } else if (result.hasMetadataResolutionExceptions()) { ex = result.getMetadataResolutionException(0); } else { ex = null; } if (ex != null) { throw new IllegalStateException(ex); } for (Artifact missingArtifact : result.getMissingArtifacts()) { throw Exceptions.pipe(new ArtifactNotFoundException("Unable to resolve artifact", missingArtifact)); } return result.getArtifacts(); }