MODULE.bazel 檔案

回報問題 Nightly

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 string;必要
要新增為直接依附元件的模組名稱。
version string;預設為 ''
要新增為直接依附元件的模組版本。
max_compatibility_level int; 預設值為 -1
要新增為直接依附元件模組的支援數量上限compatibility_level。模組版本會隱含支援的最低 compatible_level,以及如未指定屬性,其上限。
repo_name string;預設值為 ''
代表此依附元件的外部存放區名稱。此為預設模組的名稱。
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 string;必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
remote string;必要
遠端 Git 存放區的網址。
commit string;預設值為 ''
應結帳的修訂版本。
patches 字串的可疊代項目;預設值為 []
。這些標籤清單指向要套用至這個模組的修補檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。這些規則會按照清單順序套用。
patch_cmds 可疊代字串;預設值為 []
套用修補程式後要套用到 Linux/Macos 的 Bash 指令序列。
patch_strip int;預設值為 0
與 Unix 修補程式的 --strip 引數相同。
init_submodules bool;預設值為 False
。在擷取的存放區中,Git 子模組是否應以遞迴方式初始化。
strip_prefix string;預設為 ''
這是從已擷取檔案中移除的目錄前置字串。可用於指定 Git 存放區的子目錄。請注意,子目錄本身的「MODULE.bazel」檔案必須要有模組名稱,與傳遞至這個「git_override」的「module_name」引數相同。

包括

None include(label)

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

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

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

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

參數

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

local_path_override

None local_path_override(module_name, path)

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

參數

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

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
模組的相容性等級;每次推出重大不相容的變更時,應該變更這個項目。就 SemVer 而言,這基本上是模組的「主要版本」,但此版本不會嵌入版本字串本身,而是獨立欄位。相容性等級不同的模組會以版本解析的形式呈現,就像是模組具有不同名稱的模組一樣,但最終依附元件圖表不能包含多個名稱相同,但相容性等級不同的模組 (除非 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 之後才能使用的功能時,才會使用。 -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 可疊代字串;必要
請明確指定允許共存的版本。這些版本必須已列在依附元件圖表預先選取項目中。這個模組的依附元件會「升級」到相同相容性等級的最高可用版本;如果依附元件的版本高於相同相容性等級的任何可用版本,就會導致錯誤。
registry string;預設值為 ''
覆寫這個模組的登錄檔;應使用指定的登錄檔,而不是從預設的註冊資料庫找到這個模組。

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

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

參數

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

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

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

參數

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

single_version_override

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

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

參數

參數 說明
module_name string;必要
要套用此覆寫值的 Bazel 模組依附元件名稱。
version string;預設值為 ''
在依附元件圖表中覆寫這個模組的宣告版本。換句話說,這個模組會「釘選」至這個覆寫版本。如果只想覆寫登錄檔或修補程式,則可省略這項屬性。
registry string;預設值為 ''
覆寫這個模組的登錄檔;應使用指定的登錄檔,而不是從預設的註冊資料庫找到這個模組。
patches 字串的可疊代項目;預設值為 []
。這些標籤清單指向要套用至這個模組的修補檔案。修補型檔案必須存在於頂層專案的來源樹狀結構中。這些規則會按照清單順序套用。
patch_cmds 可疊代字串;預設值為 []
套用修補程式後要套用到 Linux/Macos 的 Bash 指令序列。
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 string;必要
定義模組擴充功能的 Starlark 檔案標籤。
extension_name string; required
要使用的模組擴充功能名稱。使用此名稱的符號必須由 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)

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

參數

參數 說明
extension_proxy module_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 string;必要
定義存放區規則的 Starlark 檔案標籤。
repo_rule_name string; required
要使用的存放區規則名稱。使用此名稱的符號必須由 Starlark 檔案匯出。