配置容器

AConfigurationContainer负责声明和管理配置。也可以看看Configuration

您可以ConfigurationContainer通过调用Project.getConfigurations()或使用configurations构建脚本中的属性来获取实例。

容器中的配置可作为容器的只读属性进行访问,使用配置名称作为属性名称。例如:

configurations.create('myConfiguration')
configurations.myConfiguration.transitive = false

为每个需要配置闭包的配置添加一个动态方法。这相当于调用ConfigurationContainer.getByName(java.lang.String, groovy.lang.Closure).例如:

configurations.create('myConfiguration')
configurations.myConfiguration {
    transitive = false
}

例子

一个示例,展示如何通过名称引用给定配置以获取所有依赖项(例如 jar,但仅限于此)

plugins {
    id 'java' //so that I can use 'implementation', 'compileClasspath' configuration
}

dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.26'
}

//copying all dependencies attached to 'compileClasspath' into a specific folder
task copyAllDependencies(type: Copy) {
  //referring to the 'compileClasspath' configuration
  from configurations.compileClasspath
  into 'allLibs'
}

显示如何声明和配置配置的示例

plugins {
    id 'java' // so that I can use 'implementation', 'testImplementation' configurations
}

configurations {
  //adding a configuration:
  myConfiguration

  //adding a configuration that extends existing configuration:
  //(testImplementation was added by the java plugin)
  myIntegrationTestsCompile.extendsFrom(testImplementation)

  //configuring existing configurations not to put transitive dependencies on the compile classpath
  //this way you can avoid issues with implicit dependencies to transitive libraries
  compileClasspath.transitive = false
  testCompileClasspath.transitive = false
}

配置解析策略 的示例- 请参阅文档ResolutionStrategy 请参阅管理依赖项配置用户手册章节以获取更多信息。

特性

无属性

方法

方法描述
consumable(name)
孵化

注册一个ConsumableConfiguration具有不可变角色的新角色。消耗性配置旨在充当依赖项管理和发布上下文中的变体。

consumable(name, action)
孵化

注册一个ConsumableConfigurationvia ConfigurationContainer.consumable(java.lang.String),然后使用提供的操作对其进行配置。

create(name)

使用给定名称创建一个新项目,并将其添加到此容器中。

create(name, configureClosure)

使用给定名称创建一个新项目,将其添加到此容器中,然后使用给定的闭包对其进行配置。

create(name, configureAction)

使用给定名称创建一个新项目,将其添加到此容器中,然后使用给定操作对其进行配置。

dependencyScope(name)
孵化

注册一个DependencyScopeConfiguration具有不可变角色的新角色。依赖范围配置收集依赖项、依赖项约束,并排除可解析配置和可使用配置使用的规则。

dependencyScope(name, action)
孵化

注册一个DependencyScopeConfigurationvia ConfigurationContainer.dependencyScope(java.lang.String),然后使用提供的操作对其进行配置。

detachedConfiguration(dependencies)

创建配置,但不将其添加到此容器。

getAt(name)

按名称查找对象,如果不存在该对象则失败。此方法与 相同NamedDomainObjectCollection.getByName(java.lang.String)。您可以使用 groovy[]运算符在构建脚本中调用此方法。

getByName(name)

按名称查找对象,如果不存在该对象则失败。

getByName(name, configureClosure)

按名称查找对象,如果不存在该对象则失败。在从此方法返回对象之前,将针对该对象执行给定的配置闭包。该对象作为其委托传递给闭包。

getByName(name, configureAction)

按名称查找对象,如果不存在该对象则失败。在从此方法返回对象之前,将针对该对象执行给定的配置操作。

maybeCreate(name)

查找具有给定名称的项目,如果不存在,则创建并将其添加到此容器中。

named(name)

按名称定位对象,不触发其创建或配置,如果不存在该对象则失败。

named(name, type)

按名称和类型定位对象,不触发其创建或配置,如果不存在该对象则失败。

named(name, type, configurationAction)

按名称和类型定位对象,不触发其创建或配置,如果不存在该对象则失败。在从提供者返回对象之前,对对象执行给定的配置操作。

named(name, configurationAction)

按名称定位对象,不触发其创建或配置,如果不存在该对象则失败。在从提供者返回对象之前,对对象执行给定的配置操作。

named(nameFilter)
孵化

返回一个集合,其中包含名称与提供的过滤器匹配的对象。返回的集合是实时的,因此当匹配的对象添加到该集合中时,它们在过滤后的集合中也可见。此方法不会导致该容器中的任何待处理对象被实现。

register(name)

定义一个新对象,将在需要时创建该对象。当使用查询方法(例如,在该方法的返回值上调用 该对象NamedDomainObjectCollection.getByName(java.lang.String)时)定位对象时,该对象是“必需的” 。Provider.get()

register(name, configurationAction)

定义一个新对象,将在需要时创建和配置。当使用查询方法(例如,NamedDomainObjectCollection.getByName(java.lang.String)Provider.get()在此方法的返回值上调用)来 定位对象时,该对象是“必需的” 。

resolvable(name)
孵化

注册一个ResolvableConfiguration不可变的角色。可解析配置旨在解析依赖图及其工件。

resolvable(name, action)
孵化

注册一个ResolvableConfigurationvia ConfigurationContainer.resolvable(java.lang.String),然后使用提供的操作对其进行配置。

脚本块

无脚本块

方法详情

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

注册一个ConsumableConfiguration具有不可变角色的新角色。消耗性配置旨在充当依赖项管理和发布上下文中的变体。

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

注册一个ConsumableConfigurationvia ConfigurationContainer.consumable(java.lang.String),然后使用提供的操作对其进行配置。

T createString姓名)

使用给定名称创建一个新项目,并将其添加到此容器中。

T createString名称,Closure配置关闭)

使用给定名称创建一个新项目,将其添加到此容器中,然后使用给定的闭包对其进行配置。

T createString名称,配置操作)Action<? super T>

使用给定名称创建一个新项目,将其添加到此容器中,然后使用给定操作对其进行配置。

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

注册一个DependencyScopeConfiguration具有不可变角色的新角色。依赖范围配置收集依赖项、依赖项约束,并排除可解析配置和可使用配置使用的规则。

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

注册一个DependencyScopeConfigurationvia ConfigurationContainer.dependencyScope(java.lang.String),然后使用提供的操作对其进行配置。

Configuration detachedConfigurationDependency...依赖项)

创建配置,但不将其添加到此容器。

Configuration getAtString姓名)

按名称查找对象,如果不存在该对象则失败。此方法与 相同NamedDomainObjectCollection.getByName(java.lang.String)。您可以使用 groovy[]运算符在构建脚本中调用此方法。

Configuration getByNameString姓名)

按名称查找对象,如果不存在该对象则失败。

Configuration getByNameString名称,Closure配置关闭)

按名称查找对象,如果不存在该对象则失败。在从此方法返回对象之前,将针对该对象执行给定的配置闭包。该对象作为其委托传递给闭包。

Configuration getByNameString名称,配置操作)Action<? super Configuration>

按名称查找对象,如果不存在该对象则失败。在从此方法返回对象之前,将针对该对象执行给定的配置操作。

T maybeCreateString姓名)

查找具有给定名称的项目,如果不存在,则创建并将其添加到此容器中。

NamedDomainObjectProvider<T> namedString姓名)

按名称定位对象,不触发其创建或配置,如果不存在该对象则失败。

NamedDomainObjectProvider<S> namedString名称、类型)Class<S>

按名称和类型定位对象,不触发其创建或配置,如果不存在该对象则失败。

NamedDomainObjectProvider<S> namedString名称、类型、配置操作)Class<S>Action<? super S>

按名称和类型定位对象,不触发其创建或配置,如果不存在该对象则失败。在从提供者返回对象之前,对对象执行给定的配置操作。

NamedDomainObjectProvider<T> namedString名称、配置操作)Action<? super T>

按名称定位对象,不触发其创建或配置,如果不存在该对象则失败。在从提供者返回对象之前,对对象执行给定的配置操作。

NamedDomainObjectCollection<T> named(名称过滤器)Spec<String>

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

返回一个集合,其中包含名称与提供的过滤器匹配的对象。返回的集合是实时的,因此当匹配的对象添加到该集合中时,它们在过滤后的集合中也可见。此方法不会导致该容器中的任何待处理对象被实现。

NamedDomainObjectProvider<T> registerString姓名)

定义一个新对象,将在需要时创建该对象。当使用查询方法(例如,在该方法的返回值上调用 该对象NamedDomainObjectCollection.getByName(java.lang.String)时)定位对象时,该对象是“必需的” 。Provider.get()

使用此方法通常比使用此方法更有效NamedDomainObjectContainer.create(java.lang.String),因为该方法将急切地创建对象,无论当前构建是否需要该对象。另一方面,此方法会将创建推迟到需要时。

NamedDomainObjectProvider<T> registerString名称、配置操作)Action<? super T>

定义一个新对象,将在需要时创建和配置。当使用查询方法(例如,NamedDomainObjectCollection.getByName(java.lang.String)Provider.get()在此方法的返回值上调用)来 定位对象时,该对象是“必需的” 。

使用此方法而不是NamedDomainObjectContainer.create(java.lang.String, org.gradle.api.Action)或通常更有效NamedDomainObjectContainer.create(java.lang.String),因为这些方法将急切地创建和配置对象,无论当前构建是否需要该对象。另一方面,此方法将推迟创建和配置,直到需要为止。

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

注册一个ResolvableConfiguration不可变的角色。可解析配置旨在解析依赖图及其工件。

注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。

注册一个ResolvableConfigurationvia ConfigurationContainer.resolvable(java.lang.String),然后使用提供的操作对其进行配置。