Package org.gradle.api.artifacts.query

# Interface ArtifactResolutionQuery

@Incubating public interface ArtifactResolutionQuery
A builder to construct a query that can resolve selected software artifacts of the specified components.

     apply plugin: 'java'

     task resolveCompileSources {
         doLast {
             def componentIds = configurations.compile.incoming.resolutionResult.allDependencies.collect { it.selected.id }

             def result = dependencies.createArtifactResolutionQuery()
                                      .forComponents(componentIds)
                                      .withArtifacts(JvmLibrary, SourcesArtifact, JavadocArtifact)
                                      .execute()

             for (component in result.resolvedComponents) {
                 component.getArtifacts(SourcesArtifact).each { println "Source artifact for ${component.id}: ${it.file}" }
             }
         }
     }

Since:
  2.0

## Method Summary

Modifier and Type
Method
Description
`ArtifactResolutionResult`
`execute()`
Actually execute the query, returning a query result.
`ArtifactResolutionQuery`
`forComponents(Iterable<? extends ComponentIdentifier> componentIds)`
Specifies the set of components to include in the result.
`ArtifactResolutionQuery`
`forComponents(ComponentIdentifier... componentIds)`
Specifies the set of components to include in the result.
`ArtifactResolutionQuery`
`withArtifacts(Class<? extends Component> componentType, Class<? extends Artifact>... artifactTypes)`
Defines the type of component that is expected in the result, and the artifacts to retrieve for components of this type.

## Method Details

### forComponents

ArtifactResolutionQuery forComponents(Iterable<? extends ComponentIdentifier> componentIds)
Specifies the set of components to include in the result.

Parameters:
  `componentIds` - The identifiers of the components to be queried.

### forComponents

ArtifactResolutionQuery forComponents(ComponentIdentifier... componentIds)
Specifies the set of components to include in the result.

Parameters:
  `componentIds` - The identifiers of the components to be queried.

### withArtifacts

ArtifactResolutionQuery withArtifacts(Class<? extends Component> componentType, Class<? extends Artifact>... artifactTypes)
Defines the type of component that is expected in the result, and the artifacts to retrieve for components of this type. Presently, only a single component type and set of artifacts is permitted.

Parameters:
  `componentType` - The expected type of the component.
  `artifactTypes` - The artifacts to retrieve for the queried components.

### execute

ArtifactResolutionResult execute()
Actually execute the query, returning a query result. Note that `withArtifacts(Class, Class[])` must be called before executing the query.