DependencyConstraintHandler

一个 DependencyConstraintHandler 用于声明依赖约束。

依赖约束表示法

支持几种依赖约束表示法。这些将在下面描述。对于以这种方式声明的每个依赖约束,都会创建一个 DependencyConstraint 对象。你可以使用此对象查询或进一步配置依赖约束。

你也可以直接添加 DependencyConstraint 的实例

configurationName(<实例>)

依赖约束也可以使用提供任何其他支持的依赖约束表示法的 Provider 来声明。

外部依赖项

支持两种表示法来声明外部模块的依赖约束。一种是按以下格式的字符串表示法

configurationName("group:name:version")

另一种是 map 表示法

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

在这两种表示法中,除 name 外,所有属性都是可选的。

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'
  }
}

项目依赖项

要添加项目依赖约束,请使用以下表示法

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

属性

无属性

方法

方法描述
add(configurationName, dependencyNotation)

将依赖约束添加到给定的配置。

add(configurationName, dependencyNotation, configureAction)

将依赖约束添加到给定的配置,并使用给定的闭包配置该依赖约束。

create(dependencyConstraintNotation)

创建一个依赖约束,但不将其添加到配置中。

create(dependencyConstraintNotation, configureAction)

创建一个依赖约束,但不将其添加到配置中,并使用给定的闭包配置该依赖约束。

enforcedPlatform(notation)

声明一个强制平台的约束。如果目标坐标表示多个潜在组件,将选择平台组件而不是库。强制平台是一种其直接依赖项被强制执行的平台,这意味着它们将覆盖图中找到的任何其他版本。

enforcedPlatform(notation, configureAction)

声明一个强制平台的约束。如果目标坐标表示多个潜在组件,将选择平台组件而不是库。强制平台是一种其直接依赖项被强制执行的平台,这意味着它们将覆盖图中找到的任何其他版本。

脚本块

无脚本块

方法详情

DependencyConstraint add(String configurationName, Object dependencyNotation)

将依赖约束添加到给定的配置。

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

将依赖约束添加到给定的配置,并使用给定的闭包配置该依赖约束。

DependencyConstraint create(Object dependencyConstraintNotation)

创建一个依赖约束,但不将其添加到配置中。

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

创建一个依赖约束,但不将其添加到配置中,并使用给定的闭包配置该依赖约束。

DependencyConstraint enforcedPlatform(Object notation)

声明一个强制平台的约束。如果目标坐标表示多个潜在组件,将选择平台组件而不是库。强制平台是一种其直接依赖项被强制执行的平台,这意味着它们将覆盖图中找到的任何其他版本。

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

声明一个强制平台的约束。如果目标坐标表示多个潜在组件,将选择平台组件而不是库。强制平台是一种其直接依赖项被强制执行的平台,这意味着它们将覆盖图中找到的任何其他版本。