MODULE.bazel 檔案

回報問題 夜間 7.3 7.2 7.1 7.0 6.5

MODULE.bazel 檔案中可用方法。

成員

archive_override

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

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

參數

參數 說明
module_name string; 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
urls string;或「字串」的可疊代項目; 必要
封存內容的網址;可以是 http(s):// 或 file:// URL。
integrity string; 預設值為 ''
封存檔案的預期總和檢查碼,採用子資源完整性格式。
strip_prefix string; 預設值為 ''
要從已擷取檔案中移除的目錄前置字串。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補檔案必須位於頂層專案的來源樹狀結構中。系統會依清單順序套用這些規則。
patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip int; 預設值為 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 int;預設為 -1
。 如果要將模組新增為直接依附元件,則支援的最大 compatibility_level 為 模組的版本會暗示支援的最低相容性層級,以及未指定此屬性時的最高相容性層級。
repo_name 字串;預設為 ''
。代表此依附元件的外部存放區名稱。預設為模組名稱。
dev_dependency bool; 預設值為 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 string; 必填
遠端 Git 存放區的網址。
commit 字串; 預設值為 ''
應簽出的提交版本。
patches 字串的可疊代項目; 預設值為 []
標籤清單,指向要套用至這個模組的修補程式檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。系統會依照清單順序套用這些規則。
patch_cmds 字串的可迭代項目;預設為 []
。在套用修補程式後,在 Linux/Macos 上套用的 Bash 指令序列。
patch_strip int; 預設值為 0
與 Unix 修補程式的 --strip 引數相同。
init_submodules bool; 預設值為 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 string; 必要
指向要納入檔案的標籤。標籤必須指向主要存放區中的檔案。也就是必須以雙斜線 (//) 開頭。

inject_repo

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

將一或多個新的存放區插入指定的模組擴充功能。如果目前的模組不是根模組或 `--ignore_dev_dependency`,系統會忽略此方法

請改用 override_repo 覆寫現有的 repo。

參數

參數 說明
extension_proxy module_extension_proxy; 必要
use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
args required
目前模組可見的 repos,應以相同名稱插入擴充功能。
kwargs required
要插入至擴充功能的新 repos,其中值為目前模組範圍內的 repos 名稱,而鍵則是這些 repos 在擴充功能中顯示的名稱。

local_path_override

None local_path_override(module_name, path)

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

參數

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

module

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

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

最多只能呼叫一次,且如果要呼叫,則必須是 MODULE.bazel 檔案中的第一個指示。只有在這個模組是根模組 (也就是不會受到其他模組依附) 時,才能省略這個屬性。

參數

參數 說明
name string; 預設值為 ''
模組的名稱,只有在這個模組為根模組時,才可以省略 (就像同好,不需要由其他模組依附該模組)。有效的模組名稱必須:1) 只能包含小寫英文字母 (a 至 z)、數字 (0 至 9)、半形句號 (.)、連字號 (-) 和底線 (_);2) 以小寫英文字母開頭;3) 結尾須為小寫英文字母或數字。
version string; 預設值為 ''
模組的版本。只有在這個模組為根模組時,才可以省略 (就像同好,它不是由其他模組依附)。版本必須採用寬鬆的 SemVer 格式;詳情請參閱說明文件
compatibility_level int; 預設值為 0
模組的相容性等級;每次推出重大不相容的變更時,應該都會變更。這基本上就是「主要版本」,但該模組不會嵌入版本字串本身,而是以獨立欄位的形式存在。不同相容性層級的模組會參與版本解析,就好像是名稱不同的模組一樣,但最終依附元件圖表不得包含名稱相同但相容性層級不同的多個模組 (除非 multiple_version_override 生效)。詳情請參閱說明文件
repo_name string; 預設值為 ''
代表這個模組的存放區名稱,如模組本身所示。根據預設,存放區的名稱是模組名稱。您可以指定此值,以便為使用不與模組名稱相同的存放區名稱的專案,簡化遷移作業。
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 string; 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
versions string 的可迭代項目;必填
明確指定允許共存的版本。這些版本必須已列在依附元件圖表預先選取項目中。這個模組的依附元件會「升級」至相容性層級中允許的最近較高版本,但如果依附元件的版本高於同層級中允許的任何版本,就會導致錯誤。
registry string; 預設值為 ''
覆寫此模組的登錄檔;而非從預設登錄檔清單中找到這個模組,則應使用指定的登錄檔。

override_repo

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

以特定存放區覆寫由指定模組擴充功能定義的一或多個存放區 目前模組都能看到這個位址如果目前的模組不是根目錄,系統就會忽略此方法 模組或 `--ignore_dev_dependency` 已啟用。

請改用 inject_repo 新增來源。

參數

參數 說明
extension_proxy module_extension_proxy; 必填
module_extension_proxy 是 use_extension 呼叫傳回的模組擴充功能 Proxy 物件。
args 必要
擴充功能中的存放區,應使用相同存放區覆寫 目前模組中的名稱
kwargs required
套用至擴充功能產生的 repos 的覆寫值,其中值為目前模組範圍內的 repos 名稱,而鍵則是這些值會在擴充功能中覆寫的 repos 名稱。

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

指定在選取這個模組時要註冊的已定義執行平台。應為絕對目標模式 (即以 @// 開頭)。詳情請參閱工具鏈解析。如果模式擴展到多個目標 (例如 :all),則會依名稱的字母順序登錄。

參數

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

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

選取這個模組時,指定要註冊的已定義的工具鍊。應使用絕對目標模式,例如開頭為 @//。詳情請參閱工具鍊解決方案。如果模式擴展到多個目標 (例如 :all),會依目標名稱的字母順序 (而非工具鍊實作的名稱) 進行註冊。

參數

參數 說明
dev_dependency bool; 預設值為 False
如果設為 true,且目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統就不會註冊工具鍊。
toolchain_labels 字串序列; 必填
要註冊的目標模式。

single_version_override

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

指定依附元件仍應來自登錄,但其版本應固定,或其登錄應覆寫,或套用一組修正程式。這項指示僅會在根模組中生效;換句話說,如果模組用於其他依附元件,則系統會忽略其本身的覆寫值。

參數

參數 說明
module_name string; 必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
version 字串;預設為 ''
。會覆寫依附元件圖表中此模組的宣告版本。換句話說,這個模組會「固定」至這個覆寫版本。如果您只想覆寫註冊表或修補程式,可以省略這個屬性。
registry 字串; 預設值為 ''
覆寫此模組的註冊表;應使用指定的註冊表,而非從預設的註冊表清單中尋找此模組。
patches 字串的可迭代項目;預設為 []
。修補檔案必須位於頂層專案的來源樹狀結構中。這些規則會按照清單順序套用。

如果修補程式對 MODULE.bazel 檔案進行變更,只有在根模組提供修補程式檔案時,這些變更才會生效。

patch_cmds 字串的可疊代項目; 預設值為 []
套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。

對 MODULE.bazel 檔案所做的變更將會失效。

patch_strip int; 預設值為 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 string; 必要
要使用的模組擴充功能名稱。具有此名稱的符號必須由 Starlark 檔案匯出。
dev_dependency bool; 預設值為 False
設為 true 時,如果目前的模組不是根模組,或已啟用 `--ignore_dev_dependency`,系統會忽略這個模組擴充功能的用法。
isolate bool;預設值為 False
實驗功能。這個參數仍在實驗階段,可能隨時變更。請勿仰賴這項功能。您可以設定 --experimental_isolated_extension_usages
,以實驗方式啟用此功能。如果設為 true,則模組擴充功能的這項用法將與此模組和其他模組中的所有其他用法隔離。這麼做的標記不會影響其他用途,而且這項用量的擴充功能產生的存放區會與擴充功能產生的所有其他存放區不同。

這個參數目前為實驗功能,且僅適用於 --experimental_isolated_extension_usages 旗標。

use_repo

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

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

參數

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

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

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

參數

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