API 文档 | ProviderFactory |
---|
一个用于创建 Provider
实例的工厂。
可以通过使用 javax.inject.Inject
注解公共构造函数或属性 getter 方法,将工厂实例注入到任务、插件或其他对象中。它也可以通过 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 应附加到任务的输入属性。这样,当且仅当具有凭据属性的任务将被执行时,凭据的存在才会在执行任何任务之前得到验证。
请求的 Credentials 类型的值将使用模式 "identity" + 凭据字段 从项目的属性中获取。例如,identity 为 "myService" 的 PasswordCredentials
provider 将查找名为 "myServiceUsername" 和 "myServicePassword" 的属性。
目前支持以下凭据类型
为给定的 Credentials
类型创建一个 Provider
。
此方法返回的 provider 应附加到任务的输入属性。这样,当且仅当具有凭据属性的任务将被执行时,凭据的存在才会在执行任何任务之前得到验证。
请求的 Credentials 类型的值将使用模式 "identity" + 凭据字段 从项目的属性中获取。例如,identity 为 "myService" 的 PasswordCredentials
provider 将查找名为 "myServiceUsername" 和 "myServicePassword" 的属性。
目前支持以下凭据类型
创建一个 Provider
,其值是从名称以给定前缀开头的环境变量构建的名称到值映射。前缀比较是区分大小写的。返回的映射是不可变的。
创建一个 Provider
,其值是从名称以给定前缀开头的环境变量构建的名称到值映射。前缀比较是区分大小写的。返回的映射是不可变的。
ExecOutput
exec
(Action
<? super ExecSpec
>
action)
Action
<? super ExecSpec
>允许对外部进程的输出进行延迟访问。
当在配置阶段读取进程输出时,它被视为配置模型的输入。后续构建将重新执行进程以获取输出并检查缓存模型是否仍然是最新的。
无法配置进程的输入和输出流。
对于更复杂的用例,例如处理执行异常、提供输入流或以流式方式处理输出,请使用 ValueSource
。
FileContents
fileContents
(Provider
<RegularFile
>
file)
Provider
<RegularFile
>允许对给定文件的内容进行延迟访问。
当在配置阶段读取文件内容时,该文件会自动被视为配置模型的输入。
创建一个 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 是活的(live),每次查询其值时都会调用 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 将是活的(live),因此每次查询它时,它都会查询两个提供的 provider,并将合并函数应用于结果。当任何 provider 没有值时,新的 provider 也将没有值,并且不会调用合并函数。
如果提供的 provider 表示一个任务或任务的输出,则结果 provider 将携带依赖信息。