MODULE.bazel 檔案

回報問題 夜間 7.2 7.1 7.0 6.5 6.4 MODULE.bazel 檔案中可用方法。

成員

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

指定這項依附元件應來自特定位置的封存檔案 (zip、gzip 等),而非註冊資料庫。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
urls string;或「字串」的可疊代項目; 必要
封存內容的網址;可以是 http(s):// 或 file:// URL。
integrity 預設值為 ''
封存檔案的預期總和檢查碼,採用子資源完整性格式。
strip_prefix 預設值為 ''
要從已擷取檔案中移除的目錄前置字串。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。這些規則會按照清單順序套用。
patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --strip 引數相同。

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

宣告另一個 Bazel 模組的直接依附元件。

參數

參數 說明
name 必要
要新增為直接依附元件的模組名稱。
version 預設值為 ''
要新增為直接依附元件的模組版本。
max_compatibility_level 預設值為 -1
支援將模組新增為直接依附元件的支援數量上限 compatibility_level。模組版本會隱含支援的最低 compatible_level,以及如未指定屬性,則為最大值。
repo_name 預設值為 ''
代表此依附元件的外部存放區名稱。此為預設模組的名稱。
dev_dependency 預設值為 False
如果設為 true,當目前的模組不是根模組或已啟用 `--ignore_dev_dependency` 時,系統會忽略這個依附元件。

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0, init_submodules=False, strip_prefix='')

指定依附元件應來自某個 Git 存放區的特定修訂版本。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
remote 必要
遠端 Git 存放區的網址。
commit 預設值為 ''
應結帳的修訂版本。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。這些規則會按照清單順序套用。
patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --strip 引數相同。
init_submodules 預設值為 False
是否應以遞迴方式初始化擷取存放區中的 Git 子模組。
strip_prefix 預設值為 ''
要從已擷取檔案中移除的目錄前置字串。可用於指定 Git 存放區的子目錄。請注意,子目錄本身的 `MODULE.bazel` 檔案必須要有模組名稱,與傳遞至這個 `git_override` 的 `module_name` arg 相同。

包含

None include(label)

包含另一個類似 MODULE.bazel 檔案的內容。實際上,include() 的運作方式就像是將所含檔案以文字形式放在 include() 呼叫的位置中,只是變數繫結 (例如用於 use_extension 的變數) 一律會顯示在它們的檔案中,而非包含在其所屬的檔案中。

只有根模組可以使用 include();如果 bazel_dep 的 MODULE 檔案使用 include(),就會發生錯誤。

只會包含主要存放區中的檔案。

include() 可讓您將根模組檔案分成多個部分,以避免包含大量的 MODULE.bazel 檔案,或更有效地管理個別語意區段的存取權。

參數

參數 說明
label 必要
指向要納入檔案的標籤。標籤必須指向主要存放區中的檔案。也就是必須以雙斜線 (//) 開頭。

local_path_override

None local_path_override(module_name, path)

指定依附元件應來自本機磁碟上的特定目錄。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
path 必要
模組所在目錄的路徑。

module

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

宣告目前 Bazel 存放區所代表 Bazel 模組的某些屬性。這些屬性是模組的基本中繼資料 (例如名稱和版本),或影響目前模組及其相依項目的行為。

系統最多只會呼叫一次,因此呼叫之後,該指令必須是 MODULE.bazel 檔案中第一個指令。只有在這個模組為根模組時,才可以省略它 (如同同理,如果不以其他模組依附該模組)。

參數

參數 說明
name 預設值為 ''
模組的名稱,只有在這個模組為根模組時,才可以省略 (就像同好,它不是由其他模組依附)。有效的模組名稱必須:1) 只能包含小寫英文字母 (a 至 z)、數字 (0 至 9)、半形句號 (.)、連字號 (-) 和底線 (_);2) 以小寫英文字母開頭;3) 結尾須為小寫英文字母或數字。
version 預設值為 ''
模組的版本。只有在這個模組為根模組時,才可以省略 (就像同好,它不是由其他模組依附)。版本必須採用寬鬆的 SemVer 格式;詳情請參閱說明文件
compatibility_level 預設值為 0
模組的相容性等級;每次推出重大不相容的變更時,應該都會變更。這基本上就是「主要版本」模組,但不包括版本字串本身,而是獨立欄位。相容性等級不同的模組會以版本解析的形式呈現,就像是模組具有不同名稱的模組一樣,但最終依附元件圖表不能包含多個名稱相同,但相容性等級不同的模組 (除非 multiple_version_override 生效)。詳情請參閱說明文件
repo_name 預設值為 ''
代表這個模組的存放區名稱,如模組本身所示。根據預設,存放區的名稱是模組名稱。如果專案使用某個存放區名稱,但該存放區名稱與模組名稱不同,您可以指定這個值,以便更輕鬆地遷移專案。
bazel_compatibility 字串的可疊代項目; 預設值為 []
bazel 版本清單,可讓使用者宣告與這個模組相容的 Bazel 版本。這項設定「不會」影響依附元件解析,但 bzlmod 會使用這項資訊來檢查您目前的 Bazel 版本是否相容。這個值是某些限制值的字串,並以半形逗號分隔,支援三個限制:<=X.X.X:Bazel 版本必須等於或早於 X.X.X。在新版本中有已知的不相容變更時使用。>=X.X.X:Bazel 版本必須等於或高於 X.X.X。當您依賴某些只能在 X.X.X 之後才能使用的功能時,才會使用 Bazel。-X.X.X:Bazel 版本 X.X.X 不相容。當 X.X.X 中有錯誤讓您中斷,但在後續版本中已修正時可使用。

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

指定依附元件應仍來自註冊資料庫,但應允許同時存在多個版本。詳情請參閱說明文件。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
versions 字串的可疊代項目; 必要
明確指定可同時存在的版本。這些版本必須已列在依附元件圖表預先選取項目中。這個模組的依附元件將「已升級」至於相容性等級中最接近的可用版本,如果依附元件的版本高於在相同相容性等級的任何可用版本,就會造成錯誤。
registry 預設值為 ''
覆寫此模組的登錄檔;而非從預設登錄檔清單中找到這個模組,則應使用指定的登錄檔。

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

選取這個模組時,指定要登錄已定義的執行平台。必須是絕對目標模式 (例如開頭為 @//)。詳情請參閱工具鍊解決方案

參數

參數 說明
dev_dependency 預設值為 False
如果設為 true,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統就不會註冊執行平台。
platform_labels 字串序列; 必要
要註冊的平台標籤。

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

選取這個模組時,指定要註冊的已定義的工具鍊。必須是絕對目標模式 (例如開頭為 @//)。詳情請參閱工具鍊解決方案

參數

參數 說明
dev_dependency 預設值為 False
如果設為 true,且目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統就不會註冊工具鍊。
toolchain_labels 字串序列; 必要
要註冊的工具鍊標籤。標籤可以包含 :all,在此情況下,套件中所有工具鍊提供的目標將依名稱的字母順序登錄。

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

指定依附元件應仍來自登錄檔,但該版本應固定,或是已覆寫登錄檔,或是套用修補程式清單。這個指令只會在根模組中生效;換句話說,如果模組做為其他依附元件使用模組,系統會忽略本身的覆寫值。

參數

參數 說明
module_name 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
version 預設值為 ''
覆寫依附元件圖表中此模組的宣告版本。換句話說,這個模組會「固定」這個覆寫版本如果只想覆寫登錄檔或修補程式,則可省略這項屬性。
registry 預設值為 ''
覆寫此模組的登錄檔;而非從預設登錄檔清單中找到這個模組,則應使用指定的登錄檔。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。這些規則會按照清單順序套用。
patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip 預設值為 0
與 Unix 修補程式的 --strip 引數相同。

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

傳回代表模組擴充功能的 Proxy 物件。即可叫用 方法,建立模組擴充功能標記。

參數

參數 說明
extension_bzl_file 必要
定義模組副檔名的 Starlark 檔案標籤。
extension_name 必要
要使用的模組擴充功能名稱。具有此名稱的符號必須由 Starlark 檔案匯出。
dev_dependency 預設值為 False
設為 true 時,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統會忽略這個模組擴充功能的用法。
isolate 預設值為 False
實驗功能。這項參數仍在實驗階段,隨時可能變更。請勿仰賴這項功能。你可以透過設定 ---experimental_isolated_extension_usages 以實驗性方式啟用該功能
設為 true 時,此模組擴充功能的使用情形將與此模組及其他模組的其他所有用途區隔開來。這麼做的標記不會影響其他用途,而且這項用量的擴充功能產生的存放區會與擴充功能產生的所有其他存放區不同。

這個參數目前處於實驗階段,只能搭配標記 --experimental_isolated_extension_usages 使用。

use_repo

None use_repo(extension_proxy, *args, **kwargs)

將指定模組擴充功能產生的一或多個存放區匯入目前模組的範圍。

參數

參數 說明
extension_proxy 必要
use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
args 必要
要匯入的存放區名稱。
kwargs 必要
使用不同名稱指定要匯入至目前模組範圍的特定存放區。鍵應為在目前範圍中使用的名稱,而值應為模組擴充功能匯出的原始名稱。

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

傳回可直接在 MODULE.bazel 檔案中直接叫用的 Proxy 值做為存放區規則 (重複一次)。只有目前的模組可以查看以這種方式建立的重組,該模組的名稱在 Proxy 上透過 name 屬性宣告。隱含布林值 dev_dependency 屬性也可以在 Proxy 上使用,代表只有在目前模組為根模組時,系統才會建立特定存放區。

參數

參數 說明
repo_rule_bzl_file 必要
定義存放區規則的 Starlark 檔案標籤。
repo_rule_name 必要
要使用的存放區規則名稱。具有此名稱的符號必須由 Starlark 檔案匯出。