# Package-level declarations

Classes used in the artifact DSL.

## Types

ArtifactHandler
Link copied to clipboard
@ServiceScope(value = Project::class)
interface ArtifactHandler
This class is for defining artifacts to be published and adding them to configurations.
ComponentMetadataHandler
Link copied to clipboard
@ServiceScope(value = Project::class)
interface ComponentMetadataHandler
Allows the build to provide rules that modify the metadata of software components resolved from external repositories.
ComponentModuleMetadataHandler
Link copied to clipboard
interface ComponentModuleMetadataHandler
Allows to modify the metadata of depended-on software components.
Dependencies
Link copied to clipboard
interface Dependencies
Universal APIs that are available for all `dependencies` blocks.
DependencyCollector
Link copied to clipboard
@ManagedType
@NonExtensible
interface DependencyCollector
A `DependencyCollector` is used as part of a dependencies block in the DSL.
DependencyConstraintFactory
Link copied to clipboard
@NonExtensible
@Incubating
@ServiceScope(value = Build::class)
interface DependencyConstraintFactory
Factory class for creating DependencyConstraint instances, with strong typing.
DependencyConstraintHandler
Link copied to clipboard
@ServiceScope(value = Project::class)
interface DependencyConstraintHandler
A `DependencyConstraintHandler` is used to declare dependency constraints.
DependencyFactory
Link copied to clipboard
@NonExtensible
interface DependencyFactory
Factory class for creating Dependency instances, with strong typing.
DependencyHandler
Link copied to clipboard
@ServiceScope(value = Project::class)
interface DependencyHandler : ExtensionAware
A `DependencyHandler` is used to declare dependencies.
DependencyLockingHandler
Link copied to clipboard
@ServiceScope(value = Project::class)
interface DependencyLockingHandler
A `DependencyLockingHandler` manages the behaviour and configuration of dependency locking.
DependencyModifier
Link copied to clipboard
@NonExtensible
abstract class DependencyModifier
A `DependencyModifier` defines how to modify a dependency inside a custom `dependencies` block to select a different variant.
ExternalModuleDependencyVariantSpec
Link copied to clipboard
interface ExternalModuleDependencyVariantSpec
The specification of a dependency variant.
GradleDependencies
Link copied to clipboard
interface GradleDependencies : Dependencies
Dependency APIs available for `dependencies` blocks that can build software that relies on Gradle APIs.
LockMode
Link copied to clipboard
enum LockMode
The supported lock modes:

- `DEFAULT` will load the lock state and verify resolution matches it
- `STRICT` in addition to the `DEFAULT` behaviour, will fail resolution if a locked configuration does not have lock state defined
- `LENIENT` will load the lock state, to anchor dynamic versions, but otherwise be lenient about modifications of the dependency resolution, allowing versions to change and module to be added or removed

RepositoryHandler
Link copied to clipboard
@ServiceScope(value = Project::class)
interface RepositoryHandler : ArtifactRepositoryContainer
A `RepositoryHandler` manages a set of repositories, allowing repositories to be defined and queried.