規則
proto_lang_toolchain
查看規則來源proto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, output_files, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
如果使用 Bazel,請從 https://github.com/bazelbuild/rules_proto.
指定 LANG_proto_library 規則的方式 (例如java_proto_library
) 應叫用
proto-compiler
部分 LANG_proto_library 規則允許透過指令列標記指定要使用的工具鍊。
請參閱說明文件
通常除非需要 微調 Java 編譯器
沒有編譯器。proto-compiler 來自於我們附加的 proto_library 規則,是
以指令列旗標的形式傳送至 Blaze。
部分功能需要在 proto_library 規則本身叫用 proto-compiler。
強制要求 LANG_proto_library 使用的編譯器與 LANG_proto_library 相同
proto_library
有。
範例
舉例如下:
proto_lang_toolchain( name = "javalite_toolchain", command_line = "--javalite_out=shared,immutable:$(OUT)", plugin = ":javalite_plugin", runtime = ":protobuf_lite", )
引數
屬性 | |
---|---|
name |
名稱;必選 此目標的專屬名稱。 |
blacklisted_protos
|
標籤清單;預設為 srcs 屬性中的檔案產生程式碼:
blacklisted_protos 。
這會用於已連結至 proto 執行階段的 .proto 檔案,例如
any.proto 。
|
command_line
|
String;必選 這個值會傳遞至 proto-compiler 來產生程式碼。只包含部分 專屬於此程式碼產生器/外掛程式 (例如不要加入 -I 參數)
|
mnemonic
|
String;預設值為 |
output_files
|
String;預設值為 command_line 中 $(OUT) 的格式。
單一檔案或輸出目錄的路徑 (在有多個檔案的情況下)。
可能的值包括:「single」、「multiple」。
|
plugin
|
標籤;預設為 --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String;預設值為 --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String;預設值為 |
proto_compiler
|
標籤;預設為 |
runtime
|
標籤;預設為 |
proto_library
查看規則來源proto_library(name, deps, srcs, data, allow_exports, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, import_prefix, licenses, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, visibility)
已淘汰,請使用 https://github.com/bazelbuild/rules_proto。
使用 proto_library
定義通訊協定緩衝區的程式庫
可支援多種語言可能會列出一條proto_library
加入任何支援規則的 deps
子句中,例如 java_proto_library
。
透過指令列編譯時,proto_library
會建立名為
foo-descriptor-set.proto.bin
,這是針對
訊息中的 srcs 訊息。檔案是序列化的 FileDescriptorSet
,
描述
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
其中只包含以下管理員直接提到的 .proto
檔案相關資訊
proto_library
規則;及傳輸描述元集的集合
[ProtoInfo].transitive_descriptor_sets
Starlark 供應商。
請參閱 ProtoInfo.java
中的說明文件。
建議的程式碼整理方式:
- 每個
.proto
檔案一項proto_library
規則。 - 名為
foo.proto
的檔案會放入名為foo_proto
的規則, 位於同一個套件中 - 納入名為
proto_library
的[language]_proto_library
應呼叫foo_proto
foo_[language]_proto
,且位於同一個套件中。
引數
屬性 | |
---|---|
name |
名稱;必選 此目標的專屬名稱。 |
deps
|
標籤清單;預設為 proto_library 規則清單。
proto_library 只能依附於其他項目
proto_library 個目標。
可能沒有依賴特定語言的程式庫。
|
srcs
|
標籤清單;預設為 .proto 和 .protodevel 檔案清單
就能建立目標這份清單通常並非空白清單。單一用途
其中 srcs 可以是 alias-library。這是
proto_library 規則在 deps 中有一或多個其他 proto_library。
這個模式可用於多種用途,例如以永久名稱的形式匯出公用 API
|
allow_exports
|
標籤;預設為 |
exports
|
標籤清單;預設為 |
import_prefix
|
String;預設值為 設定後,這項規則的 系統會先移除 |
strip_import_prefix
|
String;預設值為 設定後,這項規則的 如果這是相對路徑 (不是以斜線開頭),則採用套件相對路徑 第一項。如果是絕對路徑,會解讀為存放區相關路徑。 緊接在 |