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); }
for (int i=versions.size() - 1; i >= Math.max(0, versions.size() - 3); i--) { Version version = versions.get(i); ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact(dependency2.getArtifact()); descriptorRequest.setRepositories(mavenPluginRepository.getRepositories());
if (!versions.isEmpty()) { Version version = versions.get(0); ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
private MavenPluginVersion createMavenVersion(Version version) throws ArtifactDescriptorException, FileNotFoundException, IOException, ArtifactResolutionException, XmlPullParserException { ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
private ArtifactDescriptorRequest createArtifactDescriptionRequest(Artifact artifact) { ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact(artifact); descriptorRequest.setRepositories(repositories); return descriptorRequest; }
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); } }
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); }
private static ArtifactDescriptorRequest createArtifactDescriptorRequest( Args args, List<RemoteRepository> repositories, Dependency d ) { ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact( d.getArtifact() ); descriptorRequest.setRepositories( repositories ); descriptorRequest.setRequestContext( args.request.getRequestContext() ); descriptorRequest.setTrace( args.trace ); return descriptorRequest; }
private static ArtifactDescriptorRequest createArtifactDescriptorRequest( Args args, List<RemoteRepository> repositories, Dependency d ) { ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); descriptorRequest.setArtifact( d.getArtifact() ); descriptorRequest.setRepositories( repositories ); descriptorRequest.setRequestContext( args.request.getRequestContext() ); descriptorRequest.setTrace( args.trace ); return descriptorRequest; }
/** * 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() ); }
@Override public DependencyMetadata resolveDependencyMetadata(final DependencyQuery query) { try { if (Strings.isNullOrEmpty(query.getCoordinate().getVersion())) { throw new IllegalArgumentException("Dependency query coordinate version must be specified."); } RepositorySystem system = container.getRepositorySystem(); Settings settings = container.getSettings(); DefaultRepositorySystemSession session = container.setupRepoSession(system, settings); Artifact artifact = MavenConvertUtils.coordinateToMavenArtifact(query.getCoordinate()); List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(), settings); remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings)); ArtifactDescriptorRequest ar = new ArtifactDescriptorRequest(artifact, remoteRepos, null); ArtifactDescriptorResult results = system.readArtifactDescriptor(session, ar); Artifact a = results.getArtifact(); Dependency d = DependencyBuilder.create().setArtifactId(a.getArtifactId()).setGroupId(a.getGroupId()) .setVersion(a.getBaseVersion()); return new DependencyMetadataImpl(d, results); } catch (Exception e) { throw new DependencyException("Unable to resolve any artifacts for query [" + query + "]", e); } }