| API 文档 | ConfigurationContainer |
|---|
A ConfigurationContainer 负责声明和管理配置。另请参见 Configuration。
您可以通过调用 Project.getConfigurations() 或在构建脚本中使用 configurations 属性来获取 ConfigurationContainer 实例。
容器中的配置可以通过容器的只读属性访问,使用配置的名称作为属性名。例如
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:2.0.17'
}
//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) | 孵化中 注册一个新的具有不可变角色的 |
consumable(name, action) | 孵化中 通过 |
create(name) | 使用给定名称创建一个新项,并将其添加到此容器中。 |
create(name, configureClosure) | 使用给定名称创建一个新项,并将其添加到此容器中,然后使用给定的闭包对其进行配置。 |
create(name, configureAction) | 使用给定名称创建一个新项,并将其添加到此容器中,然后使用给定的动作对其进行配置。 |
dependencyScope(name) | 孵化中 注册一个新的具有不可变角色的 |
dependencyScope(name, action) | 孵化中 通过 |
detachedConfiguration(dependencies) | 创建一个配置,但不将其添加到此容器中。 |
getAt(name) | 按名称查找对象,如果不存在此类对象则失败。此方法与 |
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) | 定义一个新对象,该对象将在需要时创建。当使用查询方法(例如 |
register(name, configurationAction) | 定义一个新对象,该对象将在需要时创建和配置。当使用查询方法(例如 |
resolvable(name) | 孵化中 注册一个具有不可变角色的 |
resolvable(name, action) | 孵化中 通过 |
NamedDomainObjectProvider<ConsumableConfiguration> consumable(String name)
NamedDomainObjectProvider<ConsumableConfiguration>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
注册一个新的具有不可变角色的 ConsumableConfiguration。可消费配置旨在作为依赖管理和发布上下文中的变体。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
NamedDomainObjectProvider<ConsumableConfiguration> consumable(String name, Action<? super ConsumableConfiguration> action)
NamedDomainObjectProvider<ConsumableConfiguration>Action<? super ConsumableConfiguration>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
通过 ConfigurationContainer.consumable(java.lang.String) 注册一个 ConsumableConfiguration,然后使用提供的动作对其进行配置。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
使用给定名称创建一个新项,并将其添加到此容器中,然后使用给定的闭包对其进行配置。
此操作是急切的,元素在返回之前被实现。
使用给定名称创建一个新项,并将其添加到此容器中,然后使用给定的动作对其进行配置。
此操作是急切的,元素在返回之前被实现。
NamedDomainObjectProvider<DependencyScopeConfiguration> dependencyScope(String name)
NamedDomainObjectProvider<DependencyScopeConfiguration>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
注册一个新的具有不可变角色的 DependencyScopeConfiguration。依赖范围配置收集依赖项、依赖约束和排除规则,供可解析和可消费配置使用。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
NamedDomainObjectProvider<DependencyScopeConfiguration> dependencyScope(String name, Action<? super DependencyScopeConfiguration> action)
NamedDomainObjectProvider<DependencyScopeConfiguration>Action<? super DependencyScopeConfiguration>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
通过 ConfigurationContainer.dependencyScope(java.lang.String) 注册一个 DependencyScopeConfiguration,然后使用提供的动作对其进行配置。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
Configuration detachedConfiguration(Dependency... dependencies)
Dependency...创建一个配置,但不将其添加到此容器中。
Configuration getAt(String name)
按名称查找对象,如果不存在此类对象则失败。此方法与 NamedDomainObjectCollection.getByName(java.lang.String) 相同。您可以在构建脚本中使用 Groovy 的 [] 运算符调用此方法。
此操作是急切的,并将导致返回的元素被实现。
Configuration getByName(String name, Closure configureClosure)
按名称查找对象,如果不存在此类对象,则失败。给定的配置闭包在对象由此方法返回之前针对对象执行。对象作为其委托传递给闭包。
此操作是急切的,并将导致返回的元素被实现。
Configuration getByName(String name, Action<? super Configuration> configureAction)
Action<? super Configuration>按名称查找对象,如果不存在此类对象,则失败。给定的配置操作在对象由此方法返回之前针对对象执行。
此操作是急切的,并将导致返回的元素被实现。
NamedDomainObjectProvider<S> named(String name, Class<S> type)
NamedDomainObjectProvider<S>Class<S>按名称和类型查找对象,如果不存在此类对象,则失败。
此方法是惰性的,不会导致返回的元素被实现。
NamedDomainObjectProvider<S> named(String name, Class<S> type, Action<? super S> configurationAction)
NamedDomainObjectProvider<S>Class<S>Action<? super S>按名称和类型查找对象,如果不存在此类对象,则失败。给定的配置操作在对象从提供者返回之前针对对象执行。
此方法是惰性的,不会导致返回的元素被实现。
NamedDomainObjectProvider<T> named(String name, Action<? super T> configurationAction)
NamedDomainObjectProvider<T>Action<? super T>按名称查找对象,如果不存在此类对象,则失败。给定的配置操作在对象从提供者返回之前针对对象执行。
此方法是惰性的,不会导致返回的元素被实现。
NamedDomainObjectCollection<T> named(Spec<String> nameFilter)
NamedDomainObjectCollection<T>Spec<String>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
返回一个包含名称与所提供过滤器匹配的对象的集合。返回的集合是实时的,因此当匹配的对象添加到此集合时,它们也会在过滤后的集合中可见。
此方法是一个中间操作。它不改变集合中元素的已实现/未实现状态。
NamedDomainObjectProvider<T> register(String name)
NamedDomainObjectProvider<T>定义一个新对象,该对象将在需要时创建。当使用查询方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))查找对象时,或者当在此方法的返回值上调用 Provider.get() 时,对象被“需要”。
通常,使用此方法比使用 NamedDomainObjectContainer.create(java.lang.String) 更高效,因为后者会急切地创建对象,无论当前构建是否需要该对象。而此方法会延迟创建直到需要。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
NamedDomainObjectProvider<T> register(String name, Action<? super T> configurationAction)
NamedDomainObjectProvider<T>Action<? super T>定义一个新对象,该对象将在需要时创建和配置。当使用查询方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))查找对象时,或者当在此方法的返回值上调用 Provider.get() 时,对象被“需要”。
通常,使用此方法比使用 NamedDomainObjectContainer.create(java.lang.String, org.gradle.api.Action) 或 NamedDomainObjectContainer.create(java.lang.String) 更高效,因为后者会急切地创建和配置对象,无论当前构建是否需要该对象。而此方法会延迟创建和配置直到需要。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
NamedDomainObjectProvider<ResolvableConfiguration> resolvable(String name)
NamedDomainObjectProvider<ResolvableConfiguration>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
注册一个具有不可变角色的 ResolvableConfiguration。可解析配置旨在解析依赖图及其构件。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。
NamedDomainObjectProvider<ResolvableConfiguration> resolvable(String name, Action<? super ResolvableConfiguration> action)
NamedDomainObjectProvider<ResolvableConfiguration>Action<? super ResolvableConfiguration>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
通过 ConfigurationContainer.resolvable(java.lang.String) 注册一个 ResolvableConfiguration,然后使用提供的动作对其进行配置。
此操作是惰性的,返回的元素未实现。返回 NamedDomainObjectProvider,允许继续将其与其他惰性 API 一起使用。