Gradle 提供了一種集中宣告所有專案儲存庫的方法,而不是在建置的每個子專案中或透過 allprojects
區塊宣告儲存庫。
集中宣告儲存庫是一項孵化中的功能。 |
您可以在 settings.gradle(.kts)
檔案中宣告將依慣例在每個子專案中使用的儲存庫
settings.gradle.kts
dependencyResolutionManagement {
repositories {
mavenCentral()
}
}
settings.gradle
dependencyResolutionManagement {
repositories {
mavenCentral()
}
}
dependencyResolutionManagement
儲存庫區塊接受與專案中相同的標記法,包括 Maven 或 Ivy 儲存庫,無論是否帶有憑證。
儲存庫模式
預設情況下,在專案的 build.gradle(.kts)
檔案中宣告的儲存庫將覆蓋在 settings.gradle(.kts)
中宣告的儲存庫。但是,您可以使用 repositoriesMode
設定來控制此行為
settings.gradle.kts
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.PREFER_PROJECT
}
settings.gradle
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.PREFER_PROJECT
}
[[sec:available-modes] == 可用的模式
相依性解析管理有三種模式
模式 | 描述 | 預設? | 使用案例 |
---|---|---|---|
|
在專案中宣告的儲存庫會覆蓋在 |
是 |
當團隊需要使用特定於其子專案的不同儲存庫時很有用。 |
|
在 |
否 |
適用於在大型團隊中強制使用批准的儲存庫。 |
|
在專案中宣告儲存庫會觸發建置錯誤。 |
否 |
嚴格強制使用在 |
您可以變更行為以優先使用 settings.gradle(.kts)
中的儲存庫
settings.gradle.kts
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.PREFER_SETTINGS
}
settings.gradle
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.PREFER_SETTINGS
}
當使用此模式時,如果專案或外掛宣告儲存庫,Gradle 將會警告您。
為了強制 僅 使用在 settings.gradle(.kts)
中宣告的儲存庫,您可以將 Gradle 配置為在宣告專案外掛時使建置失敗
settings.gradle.kts
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS
}
settings.gradle
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS
}