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" + 憑證欄位從專案的屬性中取得。例如,具有身份 "myService" 的 PasswordCredentials provider 將查找名為 "myServiceUsername" 和 "myServicePassword" 的屬性。

目前支援以下憑證類型

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

為給定的 Credentials 類型建立 Provider

此方法返回的 provider 應附加到任務的輸入屬性。這樣,如果且僅當要執行具有憑證屬性的任務時,才會在執行任何任務之前驗證憑證的存在。

請求的 Credentials 類型的值將使用模式 "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 代表任務或任務的輸出,則結果 provider 將攜帶依賴資訊。