API 文档 | ProviderFactory |
---|
用于创建 Provider
实例的工厂。
工厂的实例可以通过使用 javax.inject.Inject
注解公共构造函数或属性 getter 方法注入到 task、插件或其他对象中。它也可以通过 Project.getProviders()
和 Settings.getProviders()
获取。
方法 | 描述 |
credentials(credentialsType, identity) | 为给定的 |
credentials(credentialsType, identity) | 为给定的 |
environmentVariable(variableName) | 创建一个 |
environmentVariable(variableName) | 创建一个 |
environmentVariablesPrefixedBy(variableNamePrefix) | 创建一个 |
environmentVariablesPrefixedBy(variableNamePrefix) | 创建一个 |
exec(action) | 允许延迟访问外部进程的输出。 |
fileContents(file) | 允许延迟访问给定文件的内容。 |
fileContents(file) | 允许延迟访问给定文件的内容。 |
gradlePropertiesPrefixedBy(variableNamePrefix) | 创建一个 |
gradlePropertiesPrefixedBy(variableNamePrefix) | 创建一个 |
gradleProperty(propertyName) | 创建一个 |
gradleProperty(propertyName) | 创建一个 |
javaexec(action) | 允许延迟访问外部 java 进程的输出。 |
of(valueSourceType, configuration) | 创建一个 |
provider(value) | |
systemPropertiesPrefixedBy(variableNamePrefix) | 创建一个 |
systemPropertiesPrefixedBy(variableNamePrefix) | 创建一个 |
systemProperty(propertyName) | 创建一个 |
systemProperty(propertyName) | 创建一个 |
zip(first, second, combiner) | 返回一个 provider,其值将通过使用提供的组合器函数将一个 provider 值与另一个 provider 值组合来计算。 |
为给定的 Credentials
类型创建 Provider
。
此方法返回的 provider 应附加到 task 的输入属性。这样,如果并且仅当要执行具有凭据属性的 task 时,凭据的存在才会在执行任何 task 之前得到验证。
请求的凭据类型的值将使用 “identity” + 凭据字段的模式从项目的属性中获取。例如,identity 为 “myService” 的 PasswordCredentials
provider 将查找名为 “myServiceUsername” 和 “myServicePassword” 的属性。
当前支持以下凭据类型
为给定的 Credentials
类型创建 Provider
。
此方法返回的 provider 应附加到 task 的输入属性。这样,如果并且仅当要执行具有凭据属性的 task 时,凭据的存在才会在执行任何 task 之前得到验证。
请求的凭据类型的值将使用 “identity” + 凭据字段的模式从项目的属性中获取。例如,identity 为 “myService” 的 PasswordCredentials
provider 将查找名为 “myServiceUsername” 和 “myServicePassword” 的属性。
当前支持以下凭据类型
创建一个 Provider
,其值是以给定前缀开头的环境变量的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。
创建一个 Provider
,其值是以给定前缀开头的环境变量的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。
ExecOutput
exec
(Action
<? super ExecSpec
>
action)
Action
<? super ExecSpec
>允许延迟访问外部进程的输出。
当在配置时读取进程输出时,它被视为配置模型的输入。后续构建将重新执行该进程以获取输出,并检查缓存模型是否仍然是最新的。
进程输入和输出流无法配置。
对于更复杂的使用场景,例如处理执行异常、提供输入流或以流式方式处理输出,请使用 ValueSource
。
创建一个 Provider
,其值是以给定前缀开头的 Gradle 属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。
创建一个 Provider
,其值是以给定前缀开头的 Gradle 属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。
ExecOutput
javaexec
(Action
<? super JavaExecSpec
>
action)
Action
<? super JavaExecSpec
>允许延迟访问外部 java 进程的输出。
当在配置时读取进程输出时,它被视为配置模型的输入。后续构建将重新执行该进程以获取输出,并检查缓存模型是否仍然是最新的。
进程输入和输出流无法配置。
对于更复杂的使用场景,例如处理执行异常、提供输入流或以流式方式处理输出,请使用 ValueSource
。
Provider
<T
>
of
(Class
<? extends ValueSource
<T
, P
>>
valueSourceType, Action
<? super ValueSourceSpec
<P
>>
configuration)
Provider
<T
>Class
<? extends ValueSource
<T
, P
>>Action
<? super ValueSourceSpec
<P
>>创建一个 Provider
,其值从给定的 ValueSource
获取。
创建一个 Provider
,其值使用给定的 Callable
计算。
provider 是实时的,并且每次查询其值时都会调用 Callable
。 Callable
可能会返回 null
,在这种情况下,provider 被认为没有值。
创建一个 Provider
,其值是以给定前缀开头的系统属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。
创建一个 Provider
,其值是以给定前缀开头的系统属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。
Provider
<R
>
zip
(Provider
<A
>
first, Provider
<B
>
second, BiFunction
<? super A
, ? super B
, ? extends R
>
combiner)
Provider
<R
>Provider
<A
>Provider
<B
>BiFunction
<? super A
, ? super B
, ? extends R
>返回一个 provider,其值将通过使用提供的组合器函数将一个 provider 值与另一个 provider 值组合来计算。
结果 provider 将是实时的,因此每次查询它时,它都会查询提供的两个 provider 并将组合器应用于结果。每当任何 provider 没有值时,新的 provider 也将没有值,并且不会调用组合器。
如果提供的 provider 表示 task 或 task 的输出,则结果 provider 将携带依赖关系信息。