Configuration

API 文件Configuration

Configuration 代表一組工件及其相依性。在 ConfigurationContainer 的文件中,可以找到更多關於宣告組態的相依性或管理組態的資訊

Configuration 是 FileCollection 的一個實例,其中包含所有相依性 (另請參閱 Configuration.getAllDependencies()) 但不包含工件。如果您想引用在此組態中宣告的工件,請使用 Configuration.getArtifacts()Configuration.getAllArtifacts()。在 ArtifactHandler 的文件中,閱讀更多關於在組態中宣告工件的資訊。請參閱 宣告相依性 使用者手冊章節以取得更多資訊。

屬性

屬性描述
allArtifacts

此組態的工件,包括擴展組態的工件。

allDependencies

取得已宣告相依性的完整集合,包括由父組態貢獻的相依性。

artifacts

此組態的工件,不包括擴展組態的工件。

buildDependencies

傳回一個 TaskDependency 物件,其中包含建置屬於此組態或其父組態之一的本地相依性 (例如,專案相依性) 所需的所有相依性。

dependencies

取得直接包含在此組態中的已宣告相依性集合 (忽略父組態)。

description

此組態的描述。

excludeRules

應用於解析此組態的任何相依性的排除規則。

extendsFrom

此組態從中擴展的組態名稱。父組態的工件也在此組態中可用。

hierarchy

取得一個有序集合,包括此組態和所有遞迴的父組態。

incoming

傳回一個 ResolvableDependencies 實例,公開相依性解析的結果。此方法是使用相依性解析輸出的主要方式。

resolutionStrategy

此組態使用的解析策略。解析策略提供有關如何解析此組態的額外詳細資訊。有關更多資訊和範例,請參閱 ResolutionStrategy 的文件。

resolvedConfiguration

傳回 ResolvedConfiguration,這是相依性解析結果的舊版視圖。 對於新程式碼,請避免使用此方法。建議透過 Configuration.getIncoming() 存取解析輸出。此 API 將在未來的 Gradle 版本中被棄用並移除。

state

組態的狀態。

transitive

此組態的傳遞性。傳遞組態包含其直接相依性的傳遞閉包及其所有相依性。非傳遞組態僅包含直接相依性。預設值為 true。

visible

如果這是一個可見的組態,則傳回 true。可見的組態可在其所屬專案之外使用。預設值為 true。

方法

方法描述
copy()

建立此組態的副本,該副本僅包含此組態中的直接相依性 (不包含父組態的貢獻)。新組態將處於 UNRESOLVED 狀態,但將保留此組態的所有其他屬性,但父組態除外。Configuration.getHierarchy() 的副本將不包含任何父組態。

copy(dependencySpec)

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.copy(org.gradle.api.specs.Spec) 相同

copy(dependencySpec)

建立此組態的副本,忽略父組態 (請參閱 Configuration.copy(),但使用指定的相依性規格篩選相依性。

copyRecursive()

建立此組態的副本,其中包含此組態中的直接相依性和從父組態衍生的相依性。新組態將處於 UNRESOLVED 狀態,但將保留此組態的所有其他屬性,但父組態除外。Configuration.getHierarchy() 的副本將不包含任何父組態。

copyRecursive(dependencySpec)

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.copyRecursive(org.gradle.api.specs.Spec) 相同

copyRecursive(dependencySpec)

建立此組態的副本,其中包含來自父組態的相依性 (請參閱 Configuration.copyRecursive()),但使用 dependencySpec 篩選相依性。

defaultDependencies(action)

如果組態在首次參與相依性解析時沒有定義相依性,則執行給定的 action。當以下情況發生時,Configuration 將參與相依性解析

exclude(excludeProperties)

新增一個排除規則,以排除此組態的所有相依性的傳遞相依性。您也可以為每個相依性新增排除規則。請參閱 ModuleDependency.exclude(java.util.Map)

extendsFrom(superConfigs)

將給定的組態新增到此組態從中擴展的組態集合。

fileCollection(dependencySpecClosure)
已棄用

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.fileCollection(org.gradle.api.specs.Spec) 相同。

fileCollection(dependencies)
已棄用

延遲解析此組態。當首次存取傳回的 FileCollection 的元素時,解析才會發生。這會定位並下載構成此組態的檔案。FileCollection 中僅包含屬於指定相依性的結果檔案集。

fileCollection(dependencySpec)
已棄用

延遲解析此組態。當首次存取傳回的 FileCollection 的元素時,解析才會發生。這會定位並下載構成此組態的檔案。FileCollection 中僅包含屬於 dependencySpec 指定的相依性子集的結果檔案集。

files(dependencySpecClosure)
已棄用

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.files(org.gradle.api.specs.Spec) 相同。

files(dependencies)
已棄用

解析此組態。這會定位並下載構成此組態的檔案。但僅傳回屬於指定相依性的結果檔案集。

files(dependencySpec)
已棄用

解析此組態。這會定位並下載構成此組態的檔案。但僅傳回屬於 dependencySpec 指定的相依性子集的結果檔案集。

getTaskDependencyFromProjectDependency(useDependedOn, taskName)

傳回一個 TaskDependency 物件,其中包含來自與此組態或其父組態之一相關的專案相依性的所有具有指定名稱的 Task 的相依性。這些其他專案可能是此組態所相依的專案,也可能是具有類似命名組態且基於 useDependOn 引數相依於此組態的專案。

腳本區塊

沒有腳本區塊

屬性詳細資訊

PublishArtifactSet allArtifacts (唯讀)

此組態的工件,包括擴展組態的工件。

DependencySet allDependencies (唯讀)

取得已宣告相依性的完整集合,包括由父組態貢獻的相依性。

此方法不會解析組態。因此,傳回值不包含傳遞相依性。

PublishArtifactSet artifacts (唯讀)

此組態的工件,不包括擴展組態的工件。

TaskDependency buildDependencies (唯讀)

傳回一個 TaskDependency 物件,其中包含建置屬於此組態或其父組態之一的本地相依性 (例如,專案相依性) 所需的所有相依性。

DependencySet dependencies (唯讀)

取得直接包含在此組態中的已宣告相依性集合 (忽略父組態)。

此方法不會解析組態。因此,傳回值不包含傳遞相依性。

String description

此組態的描述。

Set<ExcludeRule> excludeRules (唯讀)

應用於解析此組態的任何相依性的排除規則。

Set<Configuration> extendsFrom

此組態從中擴展的組態名稱。父組態的工件也在此組態中可用。

Set<Configuration> hierarchy (唯讀)

取得一個有序集合,包括此組態和所有遞迴的父組態。

ResolvableDependencies incoming (唯讀)

傳回一個 ResolvableDependencies 實例,公開相依性解析的結果。此方法是使用相依性解析輸出的主要方式。

ResolutionStrategy resolutionStrategy (唯讀)

此組態使用的解析策略。解析策略提供有關如何解析此組態的額外詳細資訊。有關更多資訊和範例,請參閱 ResolutionStrategy 的文件。

ResolvedConfiguration resolvedConfiguration (唯讀)

傳回 ResolvedConfiguration,這是相依性解析結果的舊版視圖。 對於新程式碼,請避免使用此方法。建議透過 Configuration.getIncoming() 存取解析輸出。此 API 將在未來的 Gradle 版本中被棄用並移除。

請參閱 ResolvedConfiguration 以了解為什麼不應使用此 API 的詳細資訊。

State state (唯讀)

組態的狀態。

boolean transitive

此組態的傳遞性。傳遞組態包含其直接相依性的傳遞閉包及其所有相依性。非傳遞組態僅包含直接相依性。預設值為 true。

boolean visible

如果這是一個可見的組態,則傳回 true。可見的組態可在其所屬專案之外使用。預設值為 true。

方法詳細資訊

建立此組態的副本,該副本僅包含此組態中的直接相依性 (不包含父組態的貢獻)。新組態將處於 UNRESOLVED 狀態,但將保留此組態的所有其他屬性,但父組態除外。Configuration.getHierarchy() 的副本將不包含任何父組態。

此方法僅適用於涉及可解析組態的特定情況, 作為通用複製機制。

Configuration copy(Closure dependencySpec)

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.copy(org.gradle.api.specs.Spec) 相同

此方法僅適用於涉及可解析組態的特定情況, 作為通用複製機制。

Configuration copy(Spec<? super Dependency> dependencySpec)

建立此組態的副本,忽略父組態 (請參閱 Configuration.copy(),但使用指定的相依性規格篩選相依性。

此方法僅適用於涉及可解析組態的特定情況, 作為通用複製機制。

Configuration copyRecursive()

建立此組態的副本,其中包含此組態中的直接相依性和從父組態衍生的相依性。新組態將處於 UNRESOLVED 狀態,但將保留此組態的所有其他屬性,但父組態除外。Configuration.getHierarchy() 的副本將不包含任何父組態。

此方法僅適用於涉及可解析組態的特定情況, 作為通用複製機制。

Configuration copyRecursive(Closure dependencySpec)

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.copyRecursive(org.gradle.api.specs.Spec) 相同

此方法僅適用於涉及可解析組態的特定情況, 作為通用複製機制。

Configuration copyRecursive(Spec<? super Dependency> dependencySpec)

建立此組態的副本,其中包含來自父組態的相依性 (請參閱 Configuration.copyRecursive()),但使用 dependencySpec 篩選相依性。

此方法僅適用於涉及可解析組態的特定情況, 作為通用複製機制。

Configuration defaultDependencies(Action<? super DependencySet> action)

如果組態在首次參與相依性解析時沒有定義相依性,則執行給定的 action。當以下情況發生時,Configuration 將參與相依性解析

  • Configuration 本身已解析
  • 擴展此組態的另一個 Configuration 已解析
  • 將此組態作為專案相依性引用的另一個 Configuration 已解析

此方法對於為組態指定預設相依性非常有用

configurations { conf }
configurations['conf'].defaultDependencies { dependencies ->
     dependencies.add(owner.project.dependencies.create("org.gradle:my-util:1.0"))
}

即使 Configuration 擴展了另一個非空的 Configuration,也被視為空。

如果提供多個 action,則每個 action 將被執行,直到相依性集合不再為空。剩餘的 action 將被忽略。

Configuration exclude(Map<String, String> excludeProperties)

新增一個排除規則,以排除此組態的所有相依性的傳遞相依性。您也可以為每個相依性新增排除規則。請參閱 ModuleDependency.exclude(java.util.Map)

Configuration extendsFrom(Configuration... superConfigs)

將給定的組態新增到此組態從中擴展的組態集合。

組態僅允許從同一專案中的其他組態擴展。

FileCollection fileCollection(Closure dependencySpecClosure)

注意:此方法已棄用,將在 Gradle 的下一個主要版本中移除。

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.fileCollection(org.gradle.api.specs.Spec) 相同。

FileCollection fileCollection(Dependency... dependencies)

注意:此方法已棄用,將在 Gradle 的下一個主要版本中移除。

延遲解析此組態。當首次存取傳回的 FileCollection 的元素時,解析才會發生。這會定位並下載構成此組態的檔案。FileCollection 中僅包含屬於指定相依性的結果檔案集。

FileCollection fileCollection(Spec<? super Dependency> dependencySpec)

注意:此方法已棄用,將在 Gradle 的下一個主要版本中移除。

延遲解析此組態。當首次存取傳回的 FileCollection 的元素時,解析才會發生。這會定位並下載構成此組態的檔案。FileCollection 中僅包含屬於 dependencySpec 指定的相依性子集的結果檔案集。

Set<File> files(Closure dependencySpecClosure)

注意:此方法已棄用,將在 Gradle 的下一個主要版本中移除。

採用一個閉包,該閉包被強制轉換為 Spec。行為方式與 Configuration.files(org.gradle.api.specs.Spec) 相同。

Set<File> files(Dependency... dependencies)

注意:此方法已棄用,將在 Gradle 的下一個主要版本中移除。

解析此組態。這會定位並下載構成此組態的檔案。但僅傳回屬於指定相依性的結果檔案集。

Set<File> files(Spec<? super Dependency> dependencySpec)

注意:此方法已棄用,將在 Gradle 的下一個主要版本中移除。

解析此組態。這會定位並下載構成此組態的檔案。但僅傳回屬於 dependencySpec 指定的相依性子集的結果檔案集。

TaskDependency getTaskDependencyFromProjectDependency(boolean useDependedOn, String taskName)

傳回一個 TaskDependency 物件,其中包含來自與此組態或其父組態之一相關的專案相依性的所有具有指定名稱的 Task 的相依性。這些其他專案可能是此組態所相依的專案,也可能是具有類似命名組態且基於 useDependOn 引數相依於此組態的專案。