Interface DependencyConstraintHandler


public interface 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"))

Since:
4.5
  • Method Details

    • add

      DependencyConstraint add(String configurationName, Object dependencyNotation)
      Adds a dependency constraint to the given configuration.
      Parameters:
      configurationName - The name of the configuration.
      dependencyNotation - The dependency constraint notation
    • add

      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.
      Parameters:
      configurationName - The name of the configuration.
      dependencyNotation - The dependency constraint notation
      configureAction - The closure to use to configure the dependency constraint.
    • addProvider

      <T> void addProvider(String configurationName, Provider<T> dependencyNotation)
      Adds a dependency constraint provider to the given configuration.
      Parameters:
      configurationName - The name of the configuration.
      dependencyNotation - The dependency constraint notation provider, in one of the notations described above.
      Since:
      8.12
    • addProvider

      <T> void addProvider(String configurationName, Provider<T> dependencyNotation, Action<? super DependencyConstraint> configureAction)
      Adds a dependency constraint provider to the given configuration, eventually configures the dependency constraint using the given action.
      Parameters:
      configurationName - The name of the configuration.
      dependencyNotation - The dependency constraint notation provider, in one of the notations described above.
      configureAction - The action to use to configure the dependency constraint.
      Since:
      8.12
    • addProviderConvertible

      <T> void addProviderConvertible(String configurationName, ProviderConvertible<T> dependencyNotation)
      Adds a dependency constraint provider to the given configuration.
      Parameters:
      configurationName - The name of the configuration.
      dependencyNotation - The dependency constraint notation provider, in one of the notations described above.
      Since:
      8.12
    • addProviderConvertible

      <T> void addProviderConvertible(String configurationName, ProviderConvertible<T> dependencyNotation, Action<? super DependencyConstraint> configureAction)
      Adds a dependency constraint provider to the given configuration, eventually configures the dependency constraint using the given action.
      Parameters:
      configurationName - The name of the configuration.
      dependencyNotation - The dependency constraint notation provider, in one of the notations described above.
      configureAction - The action to use to configure the dependency constraint.
      Since:
      8.12
    • create

      DependencyConstraint create(Object dependencyConstraintNotation)
      Creates a dependency constraint without adding it to a configuration.
      Parameters:
      dependencyConstraintNotation - The dependency constraint notation.
    • create

      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.
      Parameters:
      dependencyConstraintNotation - The dependency constraint notation.
      configureAction - The closure to use to configure the dependency.
    • enforcedPlatform

      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.
      Parameters:
      notation - the coordinates of the platform
      Since:
      5.0
    • enforcedPlatform

      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.
      Parameters:
      notation - the coordinates of the platform
      configureAction - the dependency configuration block
      Since:
      5.0