Artifacts
interface 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
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
type and public artifact types that can be accessed from third-party plugins or build script are defined in SingleArtifact
Summary
Public functions |
|
---|---|
Unit |
<FileTypeT : FileSystemLocation> add( |
ScopedArtifacts |
forScope(scope: ScopedArtifacts.Scope) Some artifacts do not have a single origin (like compiled from source code). |
Provider<FileTypeT> |
<FileTypeT : FileSystemLocation> get(type: SingleArtifact<FileTypeT>) |
Provider<List<FileTypeT>> |
<FileTypeT : FileSystemLocation> getAll(type: MultipleArtifact<FileTypeT>) |
BuiltArtifactsLoader |
Provides an implementation of |
TaskBasedOperation<TaskT> |
<TaskT : Task> use(taskProvider: TaskProvider<TaskT>) Access |
Public functions
add
fun <FileTypeT : FileSystemLocation> add(
type: MultipleArtifact<FileTypeT>,
artifact: FileTypeT
): Unit
Add an existing FileTypeT
for the passed Artifact
. For task generated folder or file, do not use this API but instead use the use
API.
Parameters | |
---|---|
type: MultipleArtifact<FileTypeT> |
Type of the multiple artifact. |
artifact: FileTypeT |
is an existing static |
forScope
fun forScope(scope: ScopedArtifacts.Scope): ScopedArtifacts
Some artifacts do not have a single origin (like compiled from source code). Some artifacts can be obtained from a combination of Task
s running or incoming dependencies. For example, classes used for dexing can come from compilation related tasks as well as .aar or .jar files expressed as a project dependency.
Therefore, these artifacts values can have a scope like ScopedArtifacts.Scope.PROJECT
for values directly produced by this module (as a Task
output most likely). Alternatively, the ScopedArtifacts.Scope.ALL
adds all incoming dependencies (including transitive ones) to the previous scope.
For such cases, the artifact is represented as ScopedArtifact
and can be manipulated by its own set of API that are scope aware.
Return ScopedArtifacts
for a ScopedArtifacts.Scope
get
fun <FileTypeT : FileSystemLocation> get(type: SingleArtifact<FileTypeT>): Provider<FileTypeT>
Get the Provider
of FileTypeT
for the passed Artifact
.
Parameters | |
---|---|
type: SingleArtifact<FileTypeT> |
Type of the single artifact. |
getAll
fun <FileTypeT : FileSystemLocation> getAll(type: MultipleArtifact<FileTypeT>): Provider<List<FileTypeT>>
Get all the Provider
s of FileTypeT
for the passed Artifact
.
Parameters | |
---|---|
type: MultipleArtifact<FileTypeT> |
Type of the multiple artifact. |
getBuiltArtifactsLoader
fun getBuiltArtifactsLoader(): BuiltArtifactsLoader
Provides an implementation of BuiltArtifactsLoader
that can be used to load built artifacts metadata.
Returns | |
---|---|
BuiltArtifactsLoader |
A thread safe implementation of |
use
fun <TaskT : Task> use(taskProvider: TaskProvider<TaskT>): TaskBasedOperation<TaskT>
Access Task
based operations.
Parameters | |
---|---|
taskProvider: TaskProvider<TaskT> |
The |
Returns | |
---|---|
TaskBasedOperation<TaskT> |
A |