ArtifactResolutionQuery (Gradle API 4.7)
Date: 2018-04-18

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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `ArtifactResolutionResult` | `execute()` Actually execute the query, returning a query result.
    `ArtifactResolutionQuery` | `forComponents(ComponentIdentifier... componentIds)` Specifies the set of components to include in the result.
    `ArtifactResolutionQuery` | `forComponents(Iterable<? extends ComponentIdentifier> componentIds)` Specifies the set of components to include in the result.
    `ArtifactResolutionQuery` | `forModule(String group, String name, String version)` Specifies a module component to include in the result using its GAV coordinates.
    `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.
    `ArtifactResolutionQuery` | `withArtifacts(Class<? extends Component> componentType, Collection<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 Detail

    - #### 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.

    - #### forModule

          ArtifactResolutionQuery forModule(String group,
                                            String name,
                                            String version)

      Specifies a module component to include in the result using its GAV coordinates.
      Parameters:
        `group` - Module group.
        `name` - Module name.
        `version` - Module version.
      Since:
        4.5

    - #### 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.

    - #### withArtifacts

          ArtifactResolutionQuery withArtifacts(Class<? extends Component> componentType,
                                                Collection<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.
      Since:
        4.5

    - #### execute

          ArtifactResolutionResult execute()

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