# dependencyScope

@Incubating
open override fun dependencyScope(name: String): NamedDomainObjectProvider<DependencyScopeConfiguration>(source)

Registers a new DependencyScopeConfiguration with an immutable role. Dependency scope configurations collect dependencies, dependency constraints, and exclude rules to be used by both resolvable and consumable configurations.

This operation is lazy, the returned element is NOT realized. A lazy wrapper is returned, allowing to continue to use it with other lazy APIs.

#### Return

A provider which creates a new dependency scope configuration.

#### Since

8.4

#### Parameters

name

The name of the configuration to register.

#### Throws

org.gradle.api.InvalidUserDataException

If a configuration with the given `name` already exists in this container.

@Incubating
open override fun dependencyScope(name: String, action: Action<in DependencyScopeConfiguration>): NamedDomainObjectProvider<DependencyScopeConfiguration>(source)

Registers a DependencyScopeConfiguration via dependencyScope and then configures it with the provided action.

This operation is lazy, the returned element is NOT realized. A lazy wrapper is returned, allowing to continue to use it with other lazy APIs.

#### Return

A provider which creates a new dependency scope configuration.

#### Since

8.4

#### Parameters

name

The name of the configuration to register.

action

The action to apply to the configuration.

#### Throws

org.gradle.api.InvalidUserDataException

If a configuration with the given `name` already exists in this container.