# ArtifactResolutionQuery

API Documentation: | `ArtifactResolutionQuery`

Note: This class is incubating and may change in a future version of Gradle.

A builder to construct a query that can resolve selected software artifacts of the specified components.

    apply plugin: 'java'

    task resolveCompileSources << {
        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}" }
        }
    }

### Properties

No properties

### Methods

Method | Description
`execute()` | Incubating Actually execute the query, returning a query result. Note that `ArtifactResolutionQuery.withArtifacts(java.lang.Class, java.lang.Class[])` must be called before executing the query.
`forComponents(componentIds)` | Incubating Specifies the set of components to include in the result.
`forComponents(componentIds)` | Incubating Specifies the set of components to include in the result.
`withArtifacts(componentType, artifactTypes)` | Incubating 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.

### Script blocks

No script blocks

### Method details

#### `ArtifactResolutionResult` `execute`()

Note: This method is incubating and may change in a future version of Gradle.

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

#### `ArtifactResolutionQuery` `forComponents`(``Iterable`<? extends `ComponentIdentifier`>` componentIds)

Note: This method is incubating and may change in a future version of Gradle.

Specifies the set of components to include in the result.

#### `ArtifactResolutionQuery` `forComponents`(``ComponentIdentifier`...` componentIds)

Note: This method is incubating and may change in a future version of Gradle.

Specifies the set of components to include in the result.

#### `ArtifactResolutionQuery` `withArtifacts`(``Class`<? extends `Component`>` componentType, ``Class`<? extends `Artifact`>...` artifactTypes)

Note: This method is incubating and may change in a future version of Gradle.

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.