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

There are two notations supported for declaring a dependency constraint on an external module. One is a string notation formatted this way:

configurationName("group:name:version")

The other is a map notation:

configurationName(group: group, name: name, version: version)

In both notations, all properties, except name, are optional.

plugins {
    id("java-library") // so that we can use 'implementation', 'testImplementation' for dependency constraints
}

dependencies {
  constraints {
    //for dependencies found in artifact repositories you can use
    //the string notation, e.g. group:name:version
    implementation 'commons-lang:commons-lang:2.6'
    testImplementation 'org.mockito:mockito:1.9.0-rc1'

    //map notation:
    implementation group: 'com.google.code.guice', name: 'guice', version: '1.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.