ProviderFactory

API 文档ProviderFactory

用于创建 Provider 实例的工厂。

工厂的实例可以通过使用 javax.inject.Inject 注解公共构造函数或属性 getter 方法注入到 task、插件或其他对象中。它也可以通过 Project.getProviders()Settings.getProviders() 获取。

属性

无属性

方法

方法描述
credentials(credentialsType, identity)

为给定的 Credentials 类型创建 Provider

credentials(credentialsType, identity)

为给定的 Credentials 类型创建 Provider

environmentVariable(variableName)

创建一个 Provider,其值从具有给定名称的环境变量中获取。

environmentVariable(variableName)

创建一个 Provider,其值从具有给定名称的环境变量中获取。

environmentVariablesPrefixedBy(variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的环境变量的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

environmentVariablesPrefixedBy(variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的环境变量的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

exec(action)

允许延迟访问外部进程的输出。

fileContents(file)

允许延迟访问给定文件的内容。

fileContents(file)

允许延迟访问给定文件的内容。

gradlePropertiesPrefixedBy(variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的 Gradle 属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

gradlePropertiesPrefixedBy(variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的 Gradle 属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

gradleProperty(propertyName)

创建一个 Provider,其值从给定名称的 Gradle 属性中获取。

gradleProperty(propertyName)

创建一个 Provider,其值从给定名称的 Gradle 属性中获取。

javaexec(action)

允许延迟访问外部 java 进程的输出。

of(valueSourceType, configuration)

创建一个 Provider,其值从给定的 ValueSource 获取。

provider(value)

创建一个 Provider,其值使用给定的 Callable 计算。

systemPropertiesPrefixedBy(variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的系统属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

systemPropertiesPrefixedBy(variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的系统属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

systemProperty(propertyName)

创建一个 Provider,其值使用给定的属性名称从系统属性中获取。

systemProperty(propertyName)

创建一个 Provider,其值使用给定的属性名称从系统属性中获取。

zip(first, second, combiner)

返回一个 provider,其值将通过使用提供的组合器函数将一个 provider 值与另一个 provider 值组合来计算。

脚本块

无脚本块

方法详情

Provider<T> credentials(Class<T> credentialsType, String identity)

为给定的 Credentials 类型创建 Provider

此方法返回的 provider 应附加到 task 的输入属性。这样,如果并且仅当要执行具有凭据属性的 task 时,凭据的存在才会在执行任何 task 之前得到验证。

请求的凭据类型的值将使用 “identity” + 凭据字段的模式从项目的属性中获取。例如,identity 为 “myService” 的 PasswordCredentials provider 将查找名为 “myServiceUsername” 和 “myServicePassword” 的属性。

当前支持以下凭据类型

Provider<T> credentials(Class<T> credentialsType, Provider<String> identity)

为给定的 Credentials 类型创建 Provider

此方法返回的 provider 应附加到 task 的输入属性。这样,如果并且仅当要执行具有凭据属性的 task 时,凭据的存在才会在执行任何 task 之前得到验证。

请求的凭据类型的值将使用 “identity” + 凭据字段的模式从项目的属性中获取。例如,identity 为 “myService” 的 PasswordCredentials provider 将查找名为 “myServiceUsername” 和 “myServicePassword” 的属性。

当前支持以下凭据类型

Provider<String> environmentVariable(String variableName)

创建一个 Provider,其值从具有给定名称的环境变量中获取。

Provider<String> environmentVariable(Provider<String> variableName)

创建一个 Provider,其值从具有给定名称的环境变量中获取。

Provider<Map<String, String>> environmentVariablesPrefixedBy(String variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的环境变量的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

Provider<Map<String, String>> environmentVariablesPrefixedBy(Provider<String> variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的环境变量的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

ExecOutput exec(Action<? super ExecSpec> action)

允许延迟访问外部进程的输出。

当在配置时读取进程输出时,它被视为配置模型的输入。后续构建将重新执行该进程以获取输出,并检查缓存模型是否仍然是最新的。

进程输入和输出流无法配置。

对于更复杂的使用场景,例如处理执行异常、提供输入流或以流式方式处理输出,请使用 ValueSource

FileContents fileContents(RegularFile file)

允许延迟访问给定文件的内容。

当在配置时读取文件内容时,该文件会自动被视为配置模型的输入。

FileContents fileContents(Provider<RegularFile> file)

允许延迟访问给定文件的内容。

当在配置时读取文件内容时,该文件会自动被视为配置模型的输入。

Provider<Map<String, String>> gradlePropertiesPrefixedBy(String variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的 Gradle 属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

Provider<Map<String, String>> gradlePropertiesPrefixedBy(Provider<String> variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的 Gradle 属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

Provider<String> gradleProperty(String propertyName)

创建一个 Provider,其值从给定名称的 Gradle 属性中获取。

Provider<String> gradleProperty(Provider<String> propertyName)

创建一个 Provider,其值从给定名称的 Gradle 属性中获取。

ExecOutput javaexec(Action<? super JavaExecSpec> action)

允许延迟访问外部 java 进程的输出。

当在配置时读取进程输出时,它被视为配置模型的输入。后续构建将重新执行该进程以获取输出,并检查缓存模型是否仍然是最新的。

进程输入和输出流无法配置。

对于更复杂的使用场景,例如处理执行异常、提供输入流或以流式方式处理输出,请使用 ValueSource

Provider<T> of(Class<? extends ValueSource<T, P>> valueSourceType, Action<? super ValueSourceSpec<P>> configuration)

创建一个 Provider,其值从给定的 ValueSource 获取。

Provider<T> provider(Callable<? extends T> value)

创建一个 Provider,其值使用给定的 Callable 计算。

provider 是实时的,并且每次查询其值时都会调用 CallableCallable 可能会返回 null,在这种情况下,provider 被认为没有值。

Provider<Map<String, String>> systemPropertiesPrefixedBy(String variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的系统属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

Provider<Map<String, String>> systemPropertiesPrefixedBy(Provider<String> variableNamePrefix)

创建一个 Provider,其值是以给定前缀开头的系统属性的名称-值映射。前缀比较区分大小写。返回的映射是不可变的。

Provider<String> systemProperty(String propertyName)

创建一个 Provider,其值使用给定的属性名称从系统属性中获取。

Provider<String> systemProperty(Provider<String> propertyName)

创建一个 Provider,其值使用给定的属性名称从系统属性中获取。

Provider<R> zip(Provider<A> first, Provider<B> second, BiFunction<? super A, ? super B, ? extends R> combiner)

返回一个 provider,其值将通过使用提供的组合器函数将一个 provider 值与另一个 provider 值组合来计算。

结果 provider 将是实时的,因此每次查询它时,它都会查询提供的两个 provider 并将组合器应用于结果。每当任何 provider 没有值时,新的 provider 也将没有值,并且不会调用组合器。

如果提供的 provider 表示 task 或 task 的输出,则结果 provider 将携带依赖关系信息。