# Artifacts

# Artifacts

```
interface Artifacts
```

|----------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.artifact.Artifacts](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifacts#) |

Access to the artifacts on a Variant object.

Artifacts are temporary or final files or directories that are produced by the Android Gradle plugin during the build. Depending on its configuration, each[com.android.build.api.variant.VariantBuilder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/VariantBuilder.html#)produces different versions of some of the output artifacts.

An example of temporary artifacts are .class files obtained from compiling source files that will eventually get transformed further into dex files. Final artifacts are APKs and bundle files that are not transformed further.

Artifacts are uniquely defined by their[Artifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifact)type and public artifact types that can be accessed from third-party plugins or build script are defined in[SingleArtifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/SingleArtifact)

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                       ### Public methods                                                                                                                                                                                                                                                                                                                                                                                        ||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)\<FileTypeT\>                                                                                             | [get](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifacts#get(com.android.build.api.artifact.SingleArtifact))`(`type:` `[SingleArtifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/SingleArtifact)<FileTypeT>`)` Get the[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)of FileTypeT for the passed[Artifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifact).                   |
| abstract[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)\<[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)\<FileTypeT\>\> | [getAll](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifacts#getAll(com.android.build.api.artifact.MultipleArtifact))`(`type:` `[MultipleArtifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/MultipleArtifact)<FileTypeT>`)` Get all the[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)s of FileTypeT for the passed[Artifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifact). |
| abstract[BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/BuiltArtifactsLoader.html#)                                                      | [getBuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifacts#getBuiltArtifactsLoader())`()` Provides an implementation of[BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/BuiltArtifactsLoader.html#)that can be used to load built artifacts metadata.                                                                                                                                                                                         |
| abstract[TaskBasedOperation](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/TaskBasedOperation)\<TaskT\>                                                      | [use](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifacts#use(org.gradle.api.tasks.TaskProvider))`(`taskProvider:` `[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)<TaskT>`)` Access[Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)based operations.                                                                                                                                                                                                      |

## Public methods

### get

```
abstract fun <FileTypeT : FileSystemLocation> get(type: SingleArtifact<FileTypeT>): Provider<FileTypeT>
```

Get the[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)of FileTypeT for the passed[Artifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifact).

|                                                                                  Parameters                                                                                  ||
|------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
| type:[SingleArtifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/SingleArtifact)\<FileTypeT\> | Type of the single artifact. |

### getAll

```
abstract fun <FileTypeT : FileSystemLocation> getAll(type: MultipleArtifact<FileTypeT>): Provider<List<FileTypeT>>
```

Get all the[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)s of FileTypeT for the passed[Artifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/Artifact).

|                                                                                     Parameters                                                                                     ||
|----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| type:[MultipleArtifact](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/MultipleArtifact)\<FileTypeT\> | Type of the multiple artifact. |

### getBuiltArtifactsLoader

```
abstract fun getBuiltArtifactsLoader(): BuiltArtifactsLoader
```

Provides an implementation of[BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/BuiltArtifactsLoader.html#)that can be used to load built artifacts metadata.

| Return ||
|---|---|
| A thread safe implementation of[BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/BuiltArtifactsLoader.html#)that can be reused. ||

### use

```
abstract fun <TaskT : Task> use(taskProvider: TaskProvider<TaskT>): TaskBasedOperation<TaskT>
```

Access[Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)based operations.

|                                                                                                                                          Parameters                                                                                                                                          ||
|----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| taskProvider:[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)\<TaskT\> | The[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)for the TaskT that will be producing and/or consuming artifact types. |

| Return ||
|---|---|
| A[TaskBasedOperation](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/artifact/TaskBasedOperation)object using the passed[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)for all its operations. ||