throws RepositoryException { Artifact artifact = new DefaultArtifact(dependency); DependencyFilter classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE); PatternExclusionsDependencyFilter exclusionFilter = new PatternExclusionsDependencyFilter(excludes);
private List<ArtifactResult> fetchArtifactWithDep(Dependency dep) throws DependencyResolutionException, ArtifactResolutionException { Artifact artifact = new DefaultArtifact(dep.getGroupArtifactVersion()); DependencyFilter classpathFilter = DependencyFilterUtils .classpathFilter(JavaScopes.COMPILE); PatternExclusionsDependencyFilter exclusionFilter = new PatternExclusionsDependencyFilter( dep.getExclusions()); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(new org.sonatype.aether.graph.Dependency(artifact, JavaScopes.COMPILE)); collectRequest.addRepository(mavenCentral); collectRequest.addRepository(mavenLocal); for (Repository repo : repositories) { RemoteRepository rr = new RemoteRepository(repo.getId(), "default", repo.getUrl()); rr.setPolicy(repo.isSnapshot(), null); collectRequest.addRepository(rr); } DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter)); return system.resolveDependencies(session, dependencyRequest).getArtifactResults(); }
/** * Creates a new filter that selects dependencies whose scope matches one or more of the specified classpath types. * A classpath type is a set of scopes separated by either {@code ','} or {@code '+'}. * * @param classpathTypes The classpath types, may be {@code null} or empty to match no dependency. * @return The new filter, never {@code null}. * @see JavaScopes */ public static DependencyFilter classpathFilter( String... classpathTypes ) { return classpathFilter( ( classpathTypes != null ) ? Arrays.asList( classpathTypes ) : null ); }
/** * List of transitive dependencies of the artifact. * @param root The artifact to work with * @param scope The scope to work with ("runtime", "test", etc.) * @return The list of dependencies * @throws DependencyResolutionException If can't fetch it */ public List<Artifact> resolve(final Artifact root, final String scope) throws DependencyResolutionException { final DependencyFilter filter = DependencyFilterUtils.classpathFilter(scope); if (filter == null) { throw new IllegalStateException( String.format("failed to create a filter for '%s'", scope) ); } return this.resolve(root, scope, filter); }
public List<Artifact> resolveArtifacts(Iterable<? extends Artifact> sourceArtifacts) { CollectRequest collectRequest = new CollectRequest(); for (Artifact sourceArtifact : sourceArtifacts) { collectRequest.addDependency(new Dependency(sourceArtifact, JavaScopes.RUNTIME)); } for (RemoteRepository repository : repositories) { collectRequest.addRepository(repository); } DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME)); return resolveArtifacts(dependencyRequest); }
@Override public List<Artifact> resolveArtifacts(Iterable<? extends Artifact> sourceArtifacts) { CollectRequest collectRequest = new CollectRequest(); for (Artifact sourceArtifact : sourceArtifacts) { collectRequest.addDependency(new Dependency(sourceArtifact, JavaScopes.RUNTIME)); } for (RemoteRepository repository : repositories) { collectRequest.addRepository(repository); } DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME)); DependencyResult dependencyResult; try { dependencyResult = repositorySystem.resolveDependencies(repositorySystemSession, dependencyRequest); } catch (DependencyResolutionException e) { dependencyResult = e.getResult(); } List<ArtifactResult> artifactResults = dependencyResult.getArtifactResults(); List<Artifact> artifacts = new ArrayList<>(artifactResults.size()); for (ArtifactResult artifactResult : artifactResults) { if (artifactResult.isMissing()) { artifacts.add(artifactResult.getRequest().getArtifact()); } else { artifacts.add(artifactResult.getArtifact()); } } return Collections.unmodifiableList(artifacts); }
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME)); List<Artifact> artifacts = resolveArtifacts(dependencyRequest); return ImmutableList.<Artifact>builder().add(rootArtifact).addAll(artifacts).build();
/** * Resolves dependencies transitively from the given jar artifact, with the specified Maven scope * (compile, runtime, and so on.) */ public DependencyResult resolveDependencies(GAV a, String scope) throws DependencyResolutionException { DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter(scope); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(new Dependency(new DefaultArtifact(a.toString()), JavaScopes.COMPILE)); collectRequest.setRepositories(remoteRepositories); DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, classpathFlter); return resolveDependencies(dependencyRequest); }