ProviderFactory

API 文档ProviderFactory

一个用于创建 Provider 实例的工厂。

可以通过使用 javax.inject.Inject 注解公共构造函数或属性 getter 方法,将工厂实例注入到任务、插件或其他对象中。它也可以通过 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 应附加到任务的输入属性。这样,当且仅当具有凭据属性的任务将被执行时,凭据的存在才会在执行任何任务之前得到验证。

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

目前支持以下凭据类型

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

为给定的 Credentials 类型创建一个 Provider

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

请求的 Credentials 类型的值将使用模式 "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 是活的(live),每次查询其值时都会调用 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 将是活的(live),因此每次查询它时,它都会查询两个提供的 provider,并将合并函数应用于结果。当任何 provider 没有值时,新的 provider 也将没有值,并且不会调用合并函数。

如果提供的 provider 表示一个任务或任务的输出,则结果 provider 将携带依赖信息。