Kurallar
proto_lang_araç zinciri
Kural kaynağını gösterproto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
Bazel kullanıyorsanız kuralı https://github.com/bazelbuild/rules_proto adresinden yükleyin.
Bir LONG_proto_library kuralının (ör. java_proto_library
) proto derleyiciyi çağırması gerekir.
Bazı boylam_proto_kitaplığı kuralları, komut satırı işaretlerini kullanarak hangi araç zincirinin kullanılacağını belirtmeye olanak tanır. Belgelerini inceleyin.
Normalde Java derleyicinize ayar yapmak istemiyorsanız bu tür kuralları yazmamanız gerekir.
Derleyici yok. Proto-derleyici, ekli proto_library kuralından alınır. Blaze'e komut satırı işareti olarak iletilir.
Bazı özellikler proto_library kuralında bir proto derleyicinin çağrılmasını gerektirir.
DASH_proto_library'un kullandığı derleyicinin proto_library
ile aynı derleyicinin uygulanması faydalıdır.
Örnekler
Basit bir örnek:
proto_lang_toolchain( name = "javalite_toolchain", command_line = "--javalite_out=shared,immutable:$(OUT)", plugin = ":javalite_plugin", runtime = ":protobuf_lite", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
blacklisted_protos
|
blacklisted_protos için srcs özelliğindeki dosyalarda kod oluşturulmayacak.
any.proto gibi proto çalışma zamanlarına zaten bağlı olan .proto dosyaları için kullanılır.
|
command_line
|
|
mnemonic
|
|
plugin
|
--plugin=protoc-gen-PLUGIN=
|
plugin_format_flag
|
--plugin=protoc-gen-PLUGIN=
|
progress_message
|
|
proto_compiler
|
|
runtime
|
|
proto_kitaplık
Kural kaynağını gösterproto_library(name, deps, srcs, data, 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)
Kullanımdan kaldırıldı. Bunun yerine lütfen https://github.com/bazelbuild/rules_proto adresini kullanın.
Birden çok dilde kullanılabilecek protokol arabellek kitaplıklarını tanımlamak için proto_library
kullanın. Bir proto_library
, desteklenen kurallardaki deps
maddesinde (ör. java_proto_library
) listelenebilir.
Bir proto_library
, komut satırında derlendiğinde foo-descriptor-set.proto.bin
adında bir dosya oluşturur. Bu dosya, kural src'sinin mesajları için ayarlanan tanımlayıcıdır. Dosya, https://developers.google.com/protocol-buffers/docs/techniques#self-description konusunda açıklanan serileştirilmiş bir FileDescriptorSet
dosyasıdır.
Bu dosya, yalnızca bir proto_library
kuralı tarafından doğrudan bahsedilen .proto
dosyalarıyla ilgili bilgileri içerir. Geçişli açıklayıcı kümeleri, [ProtoInfo].transitive_descriptor_sets
Starlark sağlayıcısı aracılığıyla toplanır.
ProtoInfo.java
dokümanlarına bakın.
Önerilen kod organizasyonu:
- Her
.proto
dosyası için birproto_library
kuralı. -
foo.proto
adlı dosya, aynı pakette bulunanfoo_proto
adlı bir kuralda olacaktır. -
foo_proto
adlıproto_library
adlı öğeyi sarmalayan bir[language]_proto_library
,foo_[language]_proto
olarak adlandırılmalı ve aynı pakette bulunmalıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
proto_library kurallarının listesi.
proto_library yalnızca diğer proto_library hedeflerine bağlı olabilir.
Dile özel kitaplıklara bağlı olmayabilir.
|
srcs
|
.proto ve .protodevel dosyalarının listesi. Bu genellikle boş olmayan bir listedir. srcs öğesinin boş olabileceği bir kullanım alanı, alias-library şeklindedir. Bu, deps içinde bir veya daha fazla proto_kitaplık bulunan bir proto_kitaplık kuralıdır.
Bu kalıp, ör. kalıcı bir ad altında herkese açık bir API'yi dışa aktarmak için kullanılabilir.
|
exports
|
|
import_prefix
|
Ayarlandığında, bu kuralın Bu önek eklenmeden önce, |
strip_import_prefix
|
Ayarlandığında, bu kuralın Göreli bir yolsa (eğik çizgiyle başlamazsa) pakete bağlı bir yol olarak kabul edilir. Mutlak bir değerse kod deposuna bağlı bir yol olarak anlaşılır.
|