use of org.gradle.api.artifacts.result.ResolvedArtifactResult in project gradle by gradle.
the class IdeDependenciesExtractor method downloadAuxiliaryArtifacts.
private static void downloadAuxiliaryArtifacts(DependencyHandler dependencyHandler, Multimap<ComponentIdentifier, IdeExtendedRepoFileDependency> dependencies, List<Class<? extends Artifact>> artifactTypes) {
if (artifactTypes.isEmpty()) {
return;
}
ArtifactResolutionQuery query = dependencyHandler.createArtifactResolutionQuery();
query.forComponents(dependencies.keySet());
@SuppressWarnings("unchecked") Class<? extends Artifact>[] artifactTypesArray = (Class<? extends Artifact>[]) artifactTypes.toArray(new Class<?>[0]);
query.withArtifacts(JvmLibrary.class, artifactTypesArray);
Set<ComponentArtifactsResult> componentResults = query.execute().getResolvedComponents();
for (ComponentArtifactsResult componentResult : componentResults) {
for (IdeExtendedRepoFileDependency dependency : dependencies.get(componentResult.getId())) {
for (ArtifactResult sourcesResult : componentResult.getArtifacts(SourcesArtifact.class)) {
if (sourcesResult instanceof ResolvedArtifactResult) {
dependency.addSourceFile(((ResolvedArtifactResult) sourcesResult).getFile());
}
}
for (ArtifactResult javadocResult : componentResult.getArtifacts(JavadocArtifact.class)) {
if (javadocResult instanceof ResolvedArtifactResult) {
dependency.addJavadocFile(((ResolvedArtifactResult) javadocResult).getFile());
}
}
}
}
}
use of org.gradle.api.artifacts.result.ResolvedArtifactResult in project gradle by gradle.
the class DefaultLenientConfiguration method select.
@Override
public SelectedArtifactSet select(final Spec<? super Dependency> dependencySpec, final AttributeContainerInternal requestedAttributes, final Spec<? super ComponentIdentifier> componentSpec) {
final SelectedArtifactResults artifactResults;
final SelectedFileDependencyResults fileDependencyResults;
VariantSelector selector = artifactTransforms.variantSelector(requestedAttributes);
artifactResults = this.artifactResults.select(componentSpec, selector);
fileDependencyResults = this.fileDependencyResults.select(componentSpec, selector);
return new SelectedArtifactSet() {
@Override
public <T extends Collection<Object>> T collectBuildDependencies(T dest) {
artifactResults.getArtifacts().collectBuildDependencies(dest);
fileDependencyResults.getArtifacts().collectBuildDependencies(dest);
return dest;
}
@Override
public void visitArtifacts(ArtifactVisitor visitor) {
DefaultLenientConfiguration.this.visitArtifacts(dependencySpec, artifactResults, fileDependencyResults, visitor);
}
/**
* Collects files reachable from first level dependencies that satisfy the given spec. Fails when any file cannot be resolved
*/
@Override
public <T extends Collection<? super File>> T collectFiles(T dest) throws ResolveException {
rethrowFailure();
ResolvedFilesCollectingVisitor visitor = new ResolvedFilesCollectingVisitor(dest);
try {
DefaultLenientConfiguration.this.visitArtifacts(dependencySpec, artifactResults, fileDependencyResults, visitor);
// The visitor adds file dependencies directly to the destination collection however defers adding the artifacts.
// This is to ensure a fixed order regardless of whether the first level dependencies are filtered or not
// File dependencies and artifacts are currently treated separately as a migration step
visitor.addArtifacts();
} catch (Throwable t) {
visitor.failures.add(t);
}
if (!visitor.failures.isEmpty()) {
throw new ArtifactResolveException("files", configuration.getPath(), configuration.getDisplayName(), visitor.failures);
}
return dest;
}
/**
* Collects all resolved artifacts. Fails when any artifact cannot be resolved.
*/
@Override
public <T extends Collection<? super ResolvedArtifactResult>> T collectArtifacts(T dest) throws ResolveException {
rethrowFailure();
ResolvedArtifactCollectingVisitor visitor = new ResolvedArtifactCollectingVisitor(dest);
try {
DefaultLenientConfiguration.this.visitArtifacts(dependencySpec, artifactResults, fileDependencyResults, visitor);
} catch (Throwable t) {
visitor.failures.add(t);
}
if (!visitor.failures.isEmpty()) {
throw new ArtifactResolveException("artifacts", configuration.getPath(), configuration.getDisplayName(), visitor.failures);
}
return dest;
}
};
}
Aggregations