/** * Finds a Maven-based plugin JAR with its "direct" dependencies. * * @see <a href="https://github.com/eclipse/aether-demo/blob/322fa556494335faaf3ad3b7dbe8f89aaaf6222d/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDirectDependencies.java">aether-demo's GetDirectDependencies.java</a> */ public final MavenPluginPaths findMavenPluginJarsWithDirectDependencies( final String groupId, final String artifactId, final String classifier, final String version) throws MavenArtifactNotFoundException { final ArtifactDescriptorResult result; try { result = this.describeMavenArtifact(groupId, artifactId, classifier, "jar", version); } catch (ArtifactDescriptorException ex) { throw new MavenArtifactNotFoundException(groupId, artifactId, classifier, version, this.givenLocalMavenRepositoryPath, this.absoluteLocalMavenRepositoryPath, ex); } final ArrayList<Path> dependencyPaths = new ArrayList<>(); for (final Dependency dependency : result.getDependencies()) { final Path dependencyPath = this.findMavenArtifact(dependency.getArtifact()); dependencyPaths.add(dependencyPath); } final Path artifactPath = this.findMavenArtifact(result.getArtifact()); return MavenPluginPaths.of(artifactPath, dependencyPaths); }
/** * Resolves direct dependencies for an {@link Artifact}. * * @param artifact {@link Artifact} to collect its direct dependencies * @return a {@link List} of {@link Dependency} for each direct dependency resolved * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public List<Dependency> getDirectDependencies(Artifact artifact) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); return readArtifactDescriptor(artifact).getDependencies(); }
/** * Resolves direct dependencies for an {@link Artifact}. * * @param artifact {@link Artifact} to collect its direct dependencies * @param remoteRepositories remote repositories to be used in addition to the one in context * @return a {@link List} of {@link Dependency} for each direct dependency resolved * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public List<Dependency> getDirectDependencies(Artifact artifact, List<RemoteRepository> remoteRepositories) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); return readArtifactDescriptor(artifact, remoteRepositories).getDependencies(); }
for (org.eclipse.aether.graph.Dependency dependency : descriptorResult.getDependencies()) { DefaultArtifactVersion artifactVersion = new DefaultArtifactVersion(dependency.getArtifact().getVersion()); mavenPluginVersion.addDependency(new MavenDependency(dependency.getArtifact(), artifactVersion));
collectRequest.setDependencies(descriptorResult.getDependencies()); collectRequest.setManagedDependencies(descriptorResult.getManagedDependencies()); collectRequest.setRepositories(descriptorResult.getRepositories());
@Override public String toString() { return getArtifact() + " -> " + getDependencies(); }
@Override public String toString() { return getArtifact() + " -> " + getDependencies(); }
for (org.eclipse.aether.graph.Dependency dependency : descriptorResult.getDependencies()) { DefaultArtifactVersion artifactVersion = new DefaultArtifactVersion(dependency.getArtifact().getVersion()); mavenPluginVersion.addDependency(new MavenDependency(dependency.getArtifact(), artifactVersion));
for (org.eclipse.aether.graph.Dependency dependency : descriptorResult.getDependencies()) { DefaultArtifactVersion artifactVersion = new DefaultArtifactVersion(dependency.getArtifact().getVersion()); mavenPluginVersion.addDependency(new MavenDependency(dependency.getArtifact(), artifactVersion));
/** * Resolves direct dependencies for an {@link Artifact}. * * @param artifact {@link Artifact} to collect its direct dependencies * @return a {@link List} of {@link Dependency} for each direct dependency resolved * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public List<Dependency> getDirectDependencies(Artifact artifact) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); return readArtifactDescriptor(artifact).getDependencies(); }
/** * Resolves direct dependencies for an {@link Artifact}. * * @param artifact {@link Artifact} to collect its direct dependencies * @param remoteRepositories remote repositories to be used in addition to the one in context * @return a {@link List} of {@link Dependency} for each direct dependency resolved * @throws {@link ArtifactDescriptorException} if the artifact descriptor could not be read */ public List<Dependency> getDirectDependencies(Artifact artifact, List<RemoteRepository> remoteRepositories) throws ArtifactDescriptorException { checkNotNull(artifact, "artifact cannot be null"); return readArtifactDescriptor(artifact, remoteRepositories).getDependencies(); }
private Set<ArtifactRequest> createArtifactRequests(ArtifactDescriptorResult descriptorResult) { Set<Dependency> dependencies = parseDependencies(descriptorResult.getDependencies()); return createArtifactRequests(getArtifactFromDependencies(dependencies)); }
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 DependencyMetadataImpl(Dependency query, ArtifactDescriptorResult descriptor) { this.dependency = query; this.repositories = new ArrayList<>(); for (RemoteRepository r : descriptor.getRepositories()) { repositories.add(new DependencyRepository(r.getId(), r.getUrl())); } managedDependencies = new ArrayList<>(); for (org.eclipse.aether.graph.Dependency d : descriptor.getManagedDependencies()) { managedDependencies.add(convertToForge(d)); } dependencies = new ArrayList<>(); for (org.eclipse.aether.graph.Dependency d : descriptor.getDependencies()) { dependencies.add(convertToForge(d)); } }
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 ); } }
ArtifactDescriptorResult result = system.readArtifactDescriptor(session, request); for (Dependency dependency : result.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(); }
public GoodDescriptor( ArtifactDescriptorResult result ) { artifact = result.getArtifact(); relocations = result.getRelocations(); aliases = result.getAliases(); dependencies = result.getDependencies(); managedDependencies = result.getManagedDependencies(); repositories = result.getRepositories(); }
GoodDescriptor( ArtifactDescriptorResult result ) { artifact = result.getArtifact(); relocations = result.getRelocations(); aliases = result.getAliases(); dependencies = result.getDependencies(); managedDependencies = result.getManagedDependencies(); repositories = result.getRepositories(); }
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() ); }