private ArtifactDescriptorResult describeMavenArtifact( final String groupId, final String artifactId, final String classifier, final String extension, final String version) throws ArtifactDescriptorException { // |classifier| can be null for |org.eclipse.aether.artifact.DefaultArtifact|. final ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest() .setArtifact(new DefaultArtifact(groupId, artifactId, classifier, extension, version)); return this.repositorySystem.readArtifactDescriptor(this.repositorySystemSession, descriptorRequest); }
new ArtifactDescriptorRequest( pluginArtifact, repositories, REPOSITORY_CONTEXT ); request.setTrace( trace ); ArtifactDescriptorResult result = repoSystem.readArtifactDescriptor( pluginSession, request );
/** * Gets information about an artifact like its direct dependencies and potential relocations. * * @param artifact the {@link Artifact} requested, must not be {@code null} * @return {@link ArtifactDescriptorResult} descriptor result, never {@code null} * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public ArtifactDescriptorResult readArtifactDescriptor(Artifact artifact) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); final ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(artifact, resolutionContext.getRemoteRepositories(), null); return repositoryState.getSystem().readArtifactDescriptor(repositoryState.getSession(), request); }
/** * Gets information about an artifact like its direct dependencies and potential relocations. * * @param artifact the {@link Artifact} requested, must not be {@code null} * @param remoteRepositories to be used for resolving the artifact in addition to the ones already defined in context. * @return {@link ArtifactDescriptorResult} descriptor result, never {@code null} * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public ArtifactDescriptorResult readArtifactDescriptor(Artifact artifact, List<RemoteRepository> remoteRepositories) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); final ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(artifact, resolutionContext.getRemoteRepositories(), null); // Has to set authentication to these remote repositories as they may come from a pom descriptor remoteRepositories.forEach(remoteRepository -> { RemoteRepository authenticatedRemoteRepository = setAuthentication(remoteRepository); if (!request.getRepositories().contains(authenticatedRemoteRepository)) { request.addRepository(authenticatedRemoteRepository); } }); return repositoryState.getSystem().readArtifactDescriptor(repositoryState.getSession(), request); }
ArtifactDescriptorResult descriptorResult = mavenPluginRepository.getSystem().readArtifactDescriptor(mavenPluginRepository.getSession(), descriptorRequest);
descriptorRequest.setArtifact(dependency2.getArtifact()); descriptorRequest.setRepositories(mavenPluginRepository.getRepositories()); ArtifactDescriptorResult descriptorResult = mavenPluginRepository.getSystem().readArtifactDescriptor(mavenPluginRepository.getSession(), descriptorRequest);
private ArtifactDescriptorResult getArtifactDescription(ArtifactDescriptorRequest request) { ArtifactDescriptorResult descriptorResult = null; try { descriptorResult = system.readArtifactDescriptor(session, request); } catch (ArtifactDescriptorException e) { LOG.warn("Can't get artifact description: {}", request); if (LOG.isDebugEnabled()) LOG.debug(e.getMessage(), e); } return descriptorResult; }
ArtifactDescriptorResult descriptorResult = mavenPluginRepository.getSystem().readArtifactDescriptor(mavenPluginRepository.getSession(), descriptorRequest);
descriptorResult = mavenPluginRepository.getSystem().readArtifactDescriptor(mavenPluginRepository.getSession(), descriptorRequest); ArtifactRequest request = new ArtifactRequest(); request.setArtifact(descriptorResult.getArtifact());
private boolean hasTransitiveSnapshots(Dependency dependency) throws MojoFailureException { ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact( new DefaultArtifact(dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), dependency.getType(), dependency.getVersion())); descriptorRequest.setRepositories(remoteRepos); try { ArtifactDescriptorResult result = repoSystem.readArtifactDescriptor(repoSession, descriptorRequest); Optional<org.eclipse.aether.graph.Dependency> snapshotDependency = result.getDependencies().stream() .filter(d -> d.getArtifact().isSnapshot()) .findFirst(); return snapshotDependency.isPresent(); } catch (ArtifactDescriptorException e) { throw new MojoFailureException(e.getMessage(), e); } }
/** * Resolve artifact * @param artifact {@link Artifact} for resolve its dependencies * @return {@link List<ArtifactResult>} of resolved artifact * @throws IllegalArgumentException if artifact is null */ public List<ArtifactResult> resolveArtifact(Artifact artifact) { Args.notNull(artifact, "artifact"); ArtifactDescriptorRequest descriptorRequest = createArtifactDescriptionRequest(artifact); ArtifactDescriptorResult descriptorResult = null; try { descriptorResult = system.readArtifactDescriptor(session, descriptorRequest); } catch (ArtifactDescriptorException e) { if (LOG.isDebugEnabled()) LOG.debug(e.getMessage(), e); } Set<ArtifactRequest> requests = createArtifactRequests(descriptorResult); return resolveArtifactRequests(requests); }
public static void main( String[] args ) throws Exception { System.out.println( "------------------------------------------------------------" ); System.out.println( GetDirectDependencies.class.getSimpleName() ); RepositorySystem system = Booter.newRepositorySystem(); RepositorySystemSession session = Booter.newRepositorySystemSession( system ); Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" ); ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact( artifact ); descriptorRequest.setRepositories( Booter.newRepositories( system, session ) ); ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest ); for ( Dependency dependency : descriptorResult.getDependencies() ) { System.out.println( dependency ); } }
private List<Artifact> getDeployDependencies(Artifact artifact, List<Exclusion> exclusions, boolean testScope, Map<String, String> properties, DeployType type) { ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setRepositories(AetherUtil.newRepositories(deployConfig)); descriptorRequest.setArtifact(artifact); Model model = AetherUtil.readPom(artifact); if (model == null) { throw new IllegalStateException("Unable to read POM for " + artifact.getFile()); } try { ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor(session, descriptorRequest); return descriptorResult.getDependencies().stream() .filter(d -> type == DeployType.DEFAULT || (type == DeployType.APPLICATION && !d.getArtifact().getExtension().equals("zip")) || (type == DeployType.ARTIFACT && !d.getArtifact().getExtension().equals("jar"))) .filter(d -> "compile".equalsIgnoreCase(d.getScope()) || ("test".equalsIgnoreCase(d.getScope()) && testScope)) .filter(d -> !exclusions.contains(new Exclusion(d.getArtifact().getGroupId(), d.getArtifact().getArtifactId(), null, null))) .map(Dependency::getArtifact) .map(d -> this.checkWithModel(model, d, properties)) .collect(Collectors.toList()); } catch (ArtifactDescriptorException e) { LOG.error("Unable to resolve dependencies for deploy artifact '{}', unable to auto-discover ", artifact, e); } return Collections.emptyList(); }
/** * Gets information about an artifact like its direct dependencies and potential relocations. * * @param artifact the {@link Artifact} requested, must not be {@code null} * @return {@link ArtifactDescriptorResult} descriptor result, never {@code null} * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public ArtifactDescriptorResult readArtifactDescriptor(Artifact artifact) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); final ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(artifact, resolutionContext.getRemoteRepositories(), null); return repositoryState.getSystem().readArtifactDescriptor(repositoryState.getSession(), request); }
/** * Gets information about an artifact like its direct dependencies and potential relocations. * * @param artifact the {@link Artifact} requested, must not be {@code null} * @param remoteRepositories to be used for resolving the artifact in addition to the ones already defined in context. * @return {@link ArtifactDescriptorResult} descriptor result, never {@code null} * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public ArtifactDescriptorResult readArtifactDescriptor(Artifact artifact, List<RemoteRepository> remoteRepositories) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); final ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(artifact, resolutionContext.getRemoteRepositories(), null); // Has to set authentication to these remote repositories as they may come from a pom descriptor remoteRepositories.forEach(remoteRepository -> { RemoteRepository authenticatedRemoteRepository = setAuthentication(remoteRepository); if (!request.getRepositories().contains(authenticatedRemoteRepository)) { request.addRepository(authenticatedRemoteRepository); } }); return repositoryState.getSystem().readArtifactDescriptor(repositoryState.getSession(), request); }
private Map<Artifact, Dependency> resolveDependencies(BomImport bom) throws Exception { org.eclipse.aether.artifact.Artifact artifact = new org.eclipse.aether.artifact.DefaultArtifact(bom.getGroupId(), bom.getArtifactId(), "pom", bom.getVersion()); List<RemoteRepository> repositories = remoteRepositories; if (bom.getRepository() != null) { // Include the additional repository into the copy repositories = new LinkedList<RemoteRepository>(repositories); RemoteRepository repo = new RemoteRepository.Builder(bom.getArtifactId() + "-repository", "default", bom.getRepository()).build(); repositories.add(0, repo); } ArtifactRequest artifactRequest = new ArtifactRequest(artifact, repositories, null); system.resolveArtifact(session, artifactRequest); // To get an error when the artifact does not exist ArtifactDescriptorRequest req = new ArtifactDescriptorRequest(artifact, repositories, null); ArtifactDescriptorResult res = system.readArtifactDescriptor(session, req); Map<Artifact, Dependency> mavenDependencies = new LinkedHashMap<Artifact, Dependency>(); if (res.getManagedDependencies() != null) { for (org.eclipse.aether.graph.Dependency dep : res.getManagedDependencies()) { mavenDependencies.put(toMavenArtifact(dep), toMavenDependency(dep)); } } return mavenDependencies; }
private ArtifactDescriptorResult readArtifactDescriptor(AddonId addonId) throws ArtifactDescriptorException { String coords = toMavenCoords(addonId); RepositorySystem system = container.getRepositorySystem(); Settings settings = getSettings(); DefaultRepositorySystemSession session = container.setupRepoSession(system, settings); List<RemoteRepository> repositories = MavenRepositories.getRemoteRepositories(container, settings); ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(); request.setArtifact(new DefaultArtifact(coords)); request.setRepositories(repositories); ArtifactDescriptorResult result = system.readArtifactDescriptor(session, request); return result; }
public static void main( String[] args ) throws Exception { System.out.println( "------------------------------------------------------------" ); System.out.println( GetDependencyHierarchy.class.getSimpleName() ); RepositorySystem system = Booter.newRepositorySystem(); DefaultRepositorySystemSession session = Booter.newRepositorySystemSession( system ); session.setConfigProperty( ConflictResolver.CONFIG_PROP_VERBOSE, true ); session.setConfigProperty( DependencyManagerUtils.CONFIG_PROP_VERBOSE, true ); Artifact artifact = new DefaultArtifact( "org.apache.maven:maven-aether-provider:3.1.0" ); ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact( artifact ); descriptorRequest.setRepositories( Booter.newRepositories( system, session ) ); ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest ); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRootArtifact( descriptorResult.getArtifact() ); collectRequest.setDependencies( descriptorResult.getDependencies() ); collectRequest.setManagedDependencies( descriptorResult.getManagedDependencies() ); collectRequest.setRepositories( descriptorRequest.getRepositories() ); CollectResult collectResult = system.collectDependencies( session, collectRequest ); collectResult.getRoot().accept( new ConsoleDependencyGraphDumper() ); }
/** * * @param artifact {@link Artifact} * @param getDependenciesOfDependency get dependencies of dependency * @throws DependencyResolutionException * @throws IOException */ private void resolveTestDependenciesAndCopyWithTransitivity(Artifact artifact, boolean getDependenciesOfDependency) throws DependencyResolutionException, IOException { ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(artifact, repositoryList, null); try { ArtifactDescriptorResult result = repositorySystem.readArtifactDescriptor(repositorySystemSession, request); for (Dependency dep: result.getDependencies()){ // Here we can not filter dependencies by scope. // we need to use dependencies with any scope, because tests are needed to test, // and provided, and especially compile-scoped dependencies ArtifactResult artifactResult = repositorySystem.resolveArtifact(repositorySystemSession, new ArtifactRequest(dep.getArtifact(), repositoryList, null)); if(isLibraryArtifact(artifactResult.getArtifact())){ copyArtifact(artifactResult.getArtifact(), libDirectory); } else { getLog().debug("Artifact "+artifactResult.getArtifact()+" is not a library, ignoring"); } copyTransitiveRuntimeDependenciesToLibDirectory(dep, getDependenciesOfDependency); } } catch (ArtifactDescriptorException | ArtifactResolutionException e) { throw new DependencyResolutionException(e.getMessage(), 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 Maven31ArtifactResult( repositorySystem.resolveArtifact( session, request ) ); } catch ( ArtifactDescriptorException e ) { throw new ArtifactResolverException( e.getMessage(), e ); } catch ( ArtifactResolutionException e ) { throw new ArtifactResolverException( e.getMessage(), e ); } }