public static RepositorySystemSession newRepositorySystemSession( RepositorySystem system, String localRepoPath) { Validate.notNull(localRepoPath, "localRepoPath should have a value"); MavenRepositorySystemSession session = new MavenRepositorySystemSession(); LocalRepository localRepo = new LocalRepository(resolveLocalRepoPath(localRepoPath)); session.setLocalRepositoryManager(system.newLocalRepositoryManager(localRepo)); if (logger.isDebugEnabled()) { session.setTransferListener(new TransferListener()); session.setRepositoryListener(new RepositoryListener()); } // uncomment to generate dirty trees // session.setDependencyGraphTransformer( null ); return session; }
DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter)); try { return system.resolveDependencies(session, dependencyRequest).getArtifactResults(); } catch (NullPointerException | DependencyResolutionException ex) { throw new RepositoryException(
/** * Resolves the paths for an artifact. The artifact will be downloaded if necessary. An artifacts that is already * resolved will be skipped and is not re-resolved. Note that this method assumes that any relocations have already * been processed. * * @param request The resolution request, must not be {@code null} * @return The resolution result, never {@code null}. * @throws ArtifactResolutionException If the artifact could not be resolved. * @see org.sonatype.aether.artifact.Artifact#getFile() */ public ArtifactResult resolveArtifact( ArtifactRequest request ) throws ArtifactResolutionException { return repository.resolveArtifact(session, request); }
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; }
public List<ArtifactResult> resolveResult(File rootPom, boolean offline) throws ArtifactDescriptorException, DependencyCollectionException, ArtifactResolutionException { MavenRepositorySystemSession session = new MavenRepositorySystemSession(); LocalRepository localRepository = new LocalRepository(getLocalRepo()); RepositorySystem repo = getRepositorySystem(); session.setLocalRepositoryManager(repo.newLocalRepositoryManager(localRepository)); session.setDependencySelector( new AndDependencySelector(new ScopeDependencySelector("test"), new OptionalDependencySelector(), new ExclusionDependencySelector())); session.setOffline(offline); List<RemoteRepository> repos = getRemoteRepositories(); Map<String,String> props = Collections.singletonMap(ArtifactProperties.LOCAL_PATH, rootPom.toString()); Artifact root = new DefaultArtifact("#groupId", "#artifactId", null, "pom", "#version", props, rootPom); ArtifactDescriptorResult artifactDescriptorResult = repo.readArtifactDescriptor(session, new ArtifactDescriptorRequest(root, repos, null)); CollectRequest request = new CollectRequest( artifactDescriptorResult.getDependencies(), null, repos ); DependencyFilter filter = new AndDependencyFilter(); return repo.resolveDependencies(session, request, filter); }
DefaultRepositorySystemSession session = new MavenRepositorySystemSession() .setLocalRepositoryManager( system.newLocalRepositoryManager( new LocalRepository(localRepository.getAbsolutePath()))) .setOffline(false); DependencyNode root; { try { root = system.resolveDependencies(session, new DependencyRequest().setCollectRequest(request)).getRoot(); } catch (DependencyResolutionException e) { throw new RuntimeException(e); }}
ArtifactDescriptorResult artifactDescriptorResult = repositorySystem.readArtifactDescriptor(session, new ArtifactDescriptorRequest(root, repos, null)); DependencyNode node = repositorySystem.collectDependencies(session, request).getRoot(); repositorySystem.resolveDependencies(session, node, new ScopeDependencyFilter("test")); pomNode.getChildren().add(node);
public List<ArtifactResult> resolveResult(File rootPom, boolean offline) throws ArtifactDescriptorException, DependencyCollectionException, ArtifactResolutionException { RepositorySystem repo = getRepositorySystem(); MavenRepositorySystemSession session = createSession(offline, repo); List<RemoteRepository> repos = getRemoteRepositories(); Map<String,String> props = Collections.singletonMap(ArtifactProperties.LOCAL_PATH, rootPom.toString()); Artifact root = new DefaultArtifact("#groupId", "#artifactId", null, "pom", "#version", props, rootPom); ArtifactDescriptorResult artifactDescriptorResult = repo.readArtifactDescriptor(session, new ArtifactDescriptorRequest(root, repos, null)); CollectRequest request = new CollectRequest( artifactDescriptorResult.getDependencies(), null, repos ); DependencyFilter filter = new AndDependencyFilter(); return repo.resolveDependencies(session, request, filter); }
private File resolve(RepositorySystemSession session, Artifact artifact) throws IOException { try { artifact = resolveLatestVersionRange(session, artifact); artifact = m_repoSystem.resolveArtifact(session, new ArtifactRequest(artifact, m_remoteRepos, null)).getArtifact(); if (artifact != null) { final InstallRequest request = new InstallRequest(); request.addArtifact(artifact); m_repoSystem.install(session, request); } return artifact.getFile(); } catch (RepositoryException e) { throw new IOException("Aether Error.", e); } }
private org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest, Artifact aetherArtifact ) throws ArtifactResolverException // CHECKSTYLE_ON: LineLength { @SuppressWarnings( "unchecked" ) List<RemoteRepository> aetherRepositories = (List<RemoteRepository>) Invoker.invoke( RepositoryUtils.class, "toRepos", List.class, buildingRequest.getRemoteRepositories() ); RepositorySystemSession session = (RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" ); try { // use descriptor to respect relocation ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest( aetherArtifact, aetherRepositories, null ); ArtifactDescriptorResult descriptorResult = repositorySystem.readArtifactDescriptor( session, descriptorRequest ); ArtifactRequest request = new ArtifactRequest( descriptorResult.getArtifact(), aetherRepositories, null ); return new Maven30ArtifactResult( repositorySystem.resolveArtifact( session, request ) ); } catch ( ArtifactDescriptorException e ) { throw new ArtifactResolverException( e.getMessage(), e ); } catch ( ArtifactResolutionException e ) { throw new ArtifactResolverException( e.getMessage(), e ); } }
/** * 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); }
/** * Gets information about an artifact like its direct dependencies and potential relocations. * * @param request The descriptor request, must not be {@code null} * @return The descriptor result, never {@code null}. * @throws ArtifactDescriptorException If the artifact descriptor could not be read. * @see RepositorySystemSession#isIgnoreInvalidArtifactDescriptor() * @see RepositorySystemSession#isIgnoreMissingArtifactDescriptor() */ public ArtifactDescriptorResult readArtifactDescriptor( ArtifactDescriptorRequest request ) throws ArtifactDescriptorException { return repository.readArtifactDescriptor(session, request); }
/** * Installs a collection of artifacts and their accompanying metadata to the local repository. * * @param request The installation request, must not be {@code null}. * @return The installation result, never {@code null}. * @throws InstallationException If any artifact/metadata from the request could not be installed. */ public InstallResult install(InstallRequest request) throws InstallationException { return repository.install(session, request); } }
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; }
public List<ArtifactResult> resolveResult(File rootPom, boolean offline) throws ArtifactDescriptorException, DependencyCollectionException, ArtifactResolutionException { RepositorySystem repo = getRepositorySystem(); MavenRepositorySystemSession session = createSession(offline, repo); List<RemoteRepository> repos = getRemoteRepositories(); Map<String,String> props = Collections.singletonMap(ArtifactProperties.LOCAL_PATH, rootPom.toString()); Artifact root = new DefaultArtifact("#groupId", "#artifactId", null, "pom", "#version", props, rootPom); ArtifactDescriptorResult artifactDescriptorResult = repo.readArtifactDescriptor(session, new ArtifactDescriptorRequest(root, repos, null)); CollectRequest request = new CollectRequest( artifactDescriptorResult.getDependencies(), null, repos ); DependencyFilter filter = new AndDependencyFilter(); return repo.resolveDependencies(session, request, filter); }
CollectResult collectedDependencies = repoSystem.collectDependencies(repoSession, request);
public Collection<GAV> resolveDependencies(GAV artifact) throws IOException { Collection<GAV> artifactDependencies = new ArrayList<GAV>(); ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact(new DefaultArtifact(artifact.toString())); for (Repository repo : this.repositoryRegistry.getRepositories()) { if (repo.getLocalUrl() != null) { descriptorRequest.addRepository(new RemoteRepository(repo .getId(), "default", repo.getLocalUrl())); } } try { ArtifactDescriptorResult descriptorResult = this .getRepositorySystem().readArtifactDescriptor( this.getRepositorySession(), descriptorRequest); for (org.sonatype.aether.graph.Dependency dependency : descriptorResult .getDependencies()) { getLogger().debug("{} depends on {}", artifact, dependency.getArtifact()); artifactDependencies.add(new GAV(dependency.getArtifact() .getGroupId(), dependency.getArtifact().getArtifactId(), dependency .getArtifact().getVersion())); } } catch (ArtifactDescriptorException e) { throw new IOException(e); } return artifactDependencies; }
/** * Installs the given artifact and all its transitive dependencies */ public GAV install(GAV gav, File jar, File pom) throws Exception { Artifact jarArtifact = toArtifact(gav); jarArtifact = jarArtifact.setFile(jar); Artifact pomArtifact = new SubArtifact(jarArtifact, "", "pom"); pomArtifact = pomArtifact.setFile(pom); InstallRequest installRequest = new InstallRequest(); installRequest.addArtifact(jarArtifact).addArtifact(pomArtifact); rs.install(session, installRequest); return install(gav); }
private RepositorySystemSession createRepositorySystemSession() { LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository"); org.apache.maven.repository.internal.MavenRepositorySystemSession session = new org.apache.maven.repository.internal.MavenRepositorySystemSession(); session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(localRepository)); return session; }