Quy tắc
- cc_proto_library
- java_lite_proto_library
- java_proto_library
- proto_library
- py_proto_library
- proto_lang_toolchain
- proto_toolchain
cc_proto_library
Xem nguồn quy tắccc_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
cc_proto_library
tạo mã C++ từ các tệp .proto
.
deps
phải trỏ đến các quy tắc proto_library
.
Ví dụ:
cc_library(
name = "lib",
deps = [":foo_cc_proto"],
)
cc_proto_library(
name = "foo_cc_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là proto_library để tạo mã C++.
|
java_lite_proto_library
Xem nguồn quy tắcjava_lite_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
tạo mã Java từ các tệp .proto
.
deps
phải trỏ đến các quy tắc proto_library
.
Ví dụ:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là proto_library để tạo mã Java.
|
java_proto_library
Xem nguồn quy tắcjava_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
tạo mã Java từ các tệp .proto
.
deps
phải trỏ đến các quy tắc proto_library
.
Ví dụ:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là proto_library để tạo mã Java.
|
proto_library
Xem nguồn quy tắcproto_library(name, deps, srcs, data, allow_exports, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, exports, features, import_prefix, licenses, package_metadata, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, toolchains, visibility)
Sử dụng proto_library
để xác định các thư viện vùng đệm giao thức có thể được dùng từ nhiều ngôn ngữ. proto_library
có thể được liệt kê trong mệnh đề deps
của các quy tắc được hỗ trợ, chẳng hạn như java_proto_library
.
Khi được biên dịch trên dòng lệnh, proto_library
sẽ tạo một tệp có tên là foo-descriptor-set.proto.bin
, đây là tập hợp bộ mô tả cho các thông báo mà quy tắc srcs. Tệp này là một FileDescriptorSet
được chuyển đổi tuần tự. Bạn có thể xem nội dung mô tả về tệp này tại
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Nó chỉ chứa thông tin về các tệp .proto
được đề cập trực tiếp theo quy tắc proto_library
; tập hợp các tập hợp bộ mô tả bắc cầu có sẵn thông qua trình cung cấp [ProtoInfo].transitive_descriptor_sets
Starlark.
Xem tài liệu trong proto_info.bzl
.
Cấu trúc mã nên dùng:
- Mỗi tệp
.proto
có một quy tắcproto_library
. - Tệp có tên
foo.proto
sẽ nằm trong một quy tắc có tênfoo_proto
, nằm trong cùng một gói. - Một
[language]_proto_library
bao bọc mộtproto_library
có tên làfoo_proto
phải được gọi làfoo_[language]_proto
và nằm trong cùng một gói.
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là proto_library khác mà mục tiêu phụ thuộc vào.
proto_library chỉ có thể phụ thuộc vào các mục tiêu proto_library khác. Thư viện này có thể không phụ thuộc vào các thư viện dành riêng cho ngôn ngữ.
|
srcs
|
Danh sách nhãn; mặc định là .proto và .protodevel được xử lý để tạo mục tiêu. Đây thường là một danh sách không trống. Một trường hợp sử dụng mà srcs có thể trống là alias-library. Đây là một quy tắc proto_library có một hoặc nhiều proto_library khác trong deps .
Bạn có thể dùng mẫu này để xuất một API công khai dưới một tên cố định.
|
allow_exports
|
Nhãn; mặc định là |
exports
|
Danh sách nhãn; mặc định là |
import_prefix
|
Chuỗi; giá trị mặc định là Khi được thiết lập, các tệp nguồn .proto trong thuộc tính Tiền tố trong thuộc tính |
strip_import_prefix
|
Chuỗi; giá trị mặc định là Khi được đặt, các tệp nguồn .proto trong thuộc tính Nếu là đường dẫn tương đối (không bắt đầu bằng dấu gạch chéo), thì đường dẫn đó được coi là đường dẫn tương đối của gói. Nếu là đường dẫn tuyệt đối, thì đường dẫn đó được hiểu là đường dẫn tương đối của kho lưu trữ. Tiền tố trong thuộc tính |
py_proto_library
Xem nguồn quy tắcpy_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là |
proto_lang_toolchain
Xem nguồn quy tắcproto_lang_toolchain(name, allowlist_different_package, aspect_hints, blacklisted_protos, command_line, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, mnemonic, output_files, package_metadata, plugin, plugin_format_flag, progress_message, protoc_minimal_do_not_use, restricted_to, runtime, tags, target_compatible_with, testonly, toolchain_type, toolchains, visibility)
Nếu sử dụng Bazel, vui lòng tải quy tắc từ https://github.com/bazelbuild/rules_proto.
Chỉ định cách hoạt động của quy tắc LANG_proto_library (ví dụ: java_proto_library
) sẽ gọi trình biên dịch giao thức.
Một số quy tắc LANG_proto_library cho phép chỉ định chuỗi công cụ cần sử dụng bằng cách dùng cờ dòng lệnh; hãy tham khảo tài liệu của các quy tắc đó.
Thông thường, bạn không nên viết những loại quy tắc đó, trừ phi bạn muốn điều chỉnh trình biên dịch Java.
Không có trình biên dịch. Trình biên dịch giao thức được lấy từ quy tắc proto_library mà chúng ta đính kèm. Thư mục này được truyền dưới dạng cờ hiệu dòng lệnh đến Blaze.
Một số tính năng yêu cầu phải gọi trình biên dịch giao thức trên chính quy tắc proto_library.
Việc thực thi trình biên dịch mà LANG_proto_library sử dụng giống với trình biên dịch mà proto_library
sử dụng sẽ mang lại lợi ích.
Ví dụ
Ví dụ đơn giản:
proto_lang_toolchain(
name = "javalite_toolchain",
command_line = "--javalite_out=shared,immutable:$(OUT)",
plugin = ":javalite_plugin",
runtime = ":protobuf_lite",
)
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
allowlist_different_package
|
Nhãn; mặc định là |
blacklisted_protos
|
Danh sách nhãn; mặc định là srcs của blacklisted_protos .
Điều này được dùng cho các tệp .proto đã được liên kết vào thời gian chạy proto, chẳng hạn như any.proto .
|
command_line
|
Chuỗi; bắt buộc Giá trị này sẽ được chuyển đến trình biên dịch proto để tạo mã. Chỉ bao gồm các phần dành riêng cho trình tạo mã/trình bổ trợ này (ví dụ: không bao gồm các tham số -I)
|
mnemonic
|
Chuỗi; giá trị mặc định là |
output_files
|
Chuỗi; giá trị mặc định là $(OUT) trong command_line , bằng cách sử dụng đường dẫn đến một tệp duy nhất hoặc thư mục đầu ra trong trường hợp có nhiều tệp.
Các giá trị có thể là: "single", "multiple".
|
plugin
|
Nhãn; mặc định là --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
Chuỗi; giá trị mặc định là --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
Chuỗi; giá trị mặc định là |
protoc_minimal_do_not_use
|
Nhãn; mặc định là |
runtime
|
Nhãn; mặc định là |
toolchain_type
|
Nhãn; mặc định là |
proto_toolchain
Xem nguồn quy tắcproto_toolchain(name, aspect_hints, command_line, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, mnemonic, output_files, package_metadata, progress_message, proto_compiler, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên riêng cho mục tiêu này. |
command_line
|
Chuỗi; giá trị mặc định là |
mnemonic
|
Chuỗi; giá trị mặc định là |
output_files
|
Chuỗi; giá trị mặc định là |
progress_message
|
Chuỗi; giá trị mặc định là |
proto_compiler
|
Nhãn; mặc định là |