API文档: | ConfigurationContainer |
---|
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) | 孵化 注册一个 |
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
姓名)
NamedDomainObjectProvider
<ConsumableConfiguration
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
注册一个ConsumableConfiguration
具有不可变角色的新角色。消耗性配置旨在充当依赖项管理和发布上下文中的变体。
NamedDomainObjectProvider
<ConsumableConfiguration
>
consumable
(String
名称、动作)Action
<? super ConsumableConfiguration
>
NamedDomainObjectProvider
<ConsumableConfiguration
>Action
<? super ConsumableConfiguration
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
注册一个ConsumableConfiguration
via ConfigurationContainer.consumable(java.lang.String)
,然后使用提供的操作对其进行配置。
T
create
(String
姓名)
使用给定名称创建一个新项目,并将其添加到此容器中。
NamedDomainObjectProvider
<DependencyScopeConfiguration
>
dependencyScope
(String
姓名)
NamedDomainObjectProvider
<DependencyScopeConfiguration
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
注册一个DependencyScopeConfiguration
具有不可变角色的新角色。依赖范围配置收集依赖项、依赖项约束,并排除可解析配置和可使用配置使用的规则。
NamedDomainObjectProvider
<DependencyScopeConfiguration
>
dependencyScope
(String
名称、动作)Action
<? super DependencyScopeConfiguration
>
NamedDomainObjectProvider
<DependencyScopeConfiguration
>Action
<? super DependencyScopeConfiguration
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
注册一个DependencyScopeConfiguration
via ConfigurationContainer.dependencyScope(java.lang.String)
,然后使用提供的操作对其进行配置。
Configuration
detachedConfiguration
(Dependency
...
依赖项)
Dependency
...创建配置,但不将其添加到此容器。
Configuration
getAt
(String
姓名)
按名称查找对象,如果不存在该对象则失败。此方法与 相同NamedDomainObjectCollection.getByName(java.lang.String)
。您可以使用 groovy[]
运算符在构建脚本中调用此方法。
Configuration
getByName
(String
姓名)
按名称查找对象,如果不存在该对象则失败。
Configuration
getByName
(String
名称,Closure
配置关闭)
按名称查找对象,如果不存在该对象则失败。在从此方法返回对象之前,将针对该对象执行给定的配置闭包。该对象作为其委托传递给闭包。
Configuration
getByName
(String
名称,配置操作)Action
<? super Configuration
>
Action
<? super Configuration
>按名称查找对象,如果不存在该对象则失败。在从此方法返回对象之前,将针对该对象执行给定的配置操作。
T
maybeCreate
(String
姓名)
查找具有给定名称的项目,如果不存在,则创建并将其添加到此容器中。
NamedDomainObjectProvider
<T
>
named
(String
姓名)
NamedDomainObjectProvider
<T
>按名称定位对象,不触发其创建或配置,如果不存在该对象则失败。
NamedDomainObjectProvider
<S
>
named
(String
名称、类型)Class
<S
>
NamedDomainObjectProvider
<S
>Class
<S
>按名称和类型定位对象,不触发其创建或配置,如果不存在该对象则失败。
NamedDomainObjectProvider
<S
>
named
(String
名称、类型、配置操作)Class
<S
>
Action
<? super S
>
NamedDomainObjectProvider
<S
>Class
<S
>Action
<? super S
>按名称和类型定位对象,不触发其创建或配置,如果不存在该对象则失败。在从提供者返回对象之前,对对象执行给定的配置操作。
NamedDomainObjectProvider
<T
>
named
(String
名称、配置操作)Action
<? super T
>
NamedDomainObjectProvider
<T
>Action
<? super T
>按名称定位对象,不触发其创建或配置,如果不存在该对象则失败。在从提供者返回对象之前,对对象执行给定的配置操作。
NamedDomainObjectCollection
<T
>
named
(名称过滤器)Spec
<String
>
NamedDomainObjectCollection
<T
>Spec
<String
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
返回一个集合,其中包含名称与提供的过滤器匹配的对象。返回的集合是实时的,因此当匹配的对象添加到该集合中时,它们在过滤后的集合中也可见。此方法不会导致该容器中的任何待处理对象被实现。
NamedDomainObjectProvider
<T
>
register
(String
姓名)
NamedDomainObjectProvider
<T
>定义一个新对象,将在需要时创建该对象。当使用查询方法(例如,在该方法的返回值上调用
该对象NamedDomainObjectCollection.getByName(java.lang.String)
时)定位对象时,该对象是“必需的” 。Provider.get()
使用此方法通常比使用此方法更有效NamedDomainObjectContainer.create(java.lang.String)
,因为该方法将急切地创建对象,无论当前构建是否需要该对象。另一方面,此方法会将创建推迟到需要时。
NamedDomainObjectProvider
<T
>
register
(String
名称、配置操作)Action
<? super T
>
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
<ResolvableConfiguration
>
resolvable
(String
姓名)
NamedDomainObjectProvider
<ResolvableConfiguration
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
注册一个ResolvableConfiguration
不可变的角色。可解析配置旨在解析依赖图及其工件。
NamedDomainObjectProvider
<ResolvableConfiguration
>
resolvable
(String
名称、动作)Action
<? super ResolvableConfiguration
>
NamedDomainObjectProvider
<ResolvableConfiguration
>Action
<? super ResolvableConfiguration
>注意:此方法正在孵化中,可能会在 Gradle 的未来版本中发生变化。
注册一个ResolvableConfiguration
via ConfigurationContainer.resolvable(java.lang.String)
,然后使用提供的操作对其进行配置。