DependencyConstraintHandler

API Documentation:DependencyConstraintHandler

A DependencyConstraintHandler is used to declare dependency constraints.

Dependency constraint notations

There are several supported dependency constraint notations. These are described below. For each dependency constraint declared this way, a DependencyConstraint object is created. You can use this object to query or further configure the dependency constraint.

You can also always add instances of DependencyConstraint directly:

configurationName(<instance>)

Dependency constraints can also be declared with a Provider that provides any of the other supported dependency constraint notations.

External dependencies

Module dependencies are declared using single-string notation, where each coordinate is separated by a colon. All properties, except the name, are optional. configurationName("group:name:version")

plugins {
    id("java-library")
}

dependencies {
    constraints {
        // Declaring constraints on module components
        // Coordinates are separated by a single colon -- group:name:version
        implementation("org.apache.commons:commons-lang3:3.17.0")
        testImplementation("org.mockito:mockito-core:5.18.0")
    }
}

Project dependencies

To add a project dependency constraint, you use the following notation:

configurationName(project(":some-project"))

Properties

No properties

Methods

MethodDescription
add(configurationName, dependencyNotation)

Adds a dependency constraint to the given configuration.

add(configurationName, dependencyNotation, configureAction)

Adds a dependency constraint to the given configuration, and configures the dependency constraint using the given closure.

create(dependencyConstraintNotation)

Creates a dependency constraint without adding it to a configuration.

create(dependencyConstraintNotation, configureAction)

Creates a dependency constraint without adding it to a configuration, and configures the dependency constraint using the given closure.

enforcedPlatform(notation)

Declares a constraint on an enforced platform. If the target coordinates represent multiple potential components, the platform component will be selected, instead of the library. An enforced platform is a platform for which the direct dependencies are forced, meaning that they would override any other version found in the graph.

enforcedPlatform(notation, configureAction)

Declares a constraint on an enforced platform. If the target coordinates represent multiple potential components, the platform component will be selected, instead of the library. An enforced platform is a platform for which the direct dependencies are forced, meaning that they would override any other version found in the graph.

Script blocks

No script blocks

Method details

DependencyConstraint add(String configurationName, Object dependencyNotation)

Adds a dependency constraint to the given configuration.

DependencyConstraint add(String configurationName, Object dependencyNotation, Action<? super DependencyConstraint> configureAction)

Adds a dependency constraint to the given configuration, and configures the dependency constraint using the given closure.

DependencyConstraint create(Object dependencyConstraintNotation)

Creates a dependency constraint without adding it to a configuration.

DependencyConstraint create(Object dependencyConstraintNotation, Action<? super DependencyConstraint> configureAction)

Creates a dependency constraint without adding it to a configuration, and configures the dependency constraint using the given closure.

DependencyConstraint enforcedPlatform(Object notation)

Declares a constraint on an enforced platform. If the target coordinates represent multiple potential components, the platform component will be selected, instead of the library. An enforced platform is a platform for which the direct dependencies are forced, meaning that they would override any other version found in the graph.

DependencyConstraint enforcedPlatform(Object notation, Action<? super DependencyConstraint> configureAction)

Declares a constraint on an enforced platform. If the target coordinates represent multiple potential components, the platform component will be selected, instead of the library. An enforced platform is a platform for which the direct dependencies are forced, meaning that they would override any other version found in the graph.