InfoPlugin Java

Penyedia yang merangkum informasi tentang plugin Java.

Saat ini, satu-satunya jenis plugin yang didukung adalah pemroses anotasi.

Anggota

JavaPluginInfo

JavaPluginInfo JavaPluginInfo(runtime_deps, *, processor_class, data=[], generates_api=False)

Konstruktor JavaPluginInfo.

Parameter

Parameter Deskripsi
runtime_deps sequence of JavaInfos; wajib
Library yang berisi pemroses anotasi.
processor_class string; or None; wajib
Nama class yang sepenuhnya memenuhi syarat yang digunakan compiler Java sebagai titik entri ke pemroses anotasi.
data sequence of Files; or depset of Files; default = []
File yang dibutuhkan oleh pemroses anotasi ini selama eksekusi.
generates_api default = False
Setel ke true saat pemroses anotasi ini membuat kode API.

Pemroses anotasi tersebut diterapkan pada target Java sebelum memproduksi jar header-nya (yang berisi tanda tangan metode). Jika tidak ada plugin API, jar header akan dihasilkan dari sumber, sehingga mengurangi jalur penting.

PERINGATAN: Parameter ini memengaruhi performa build, gunakan hanya jika perlu.

api_generating_plugins

JavaPluginData JavaPluginInfo.api_generating_plugins

Menampilkan data tentang API yang menghasilkan plugin yang ditentukan atau diekspor oleh target ini.

Pemroses anotasi tersebut diterapkan ke target Java sebelum memproduksi jar header-nya (yang berisi tanda tangan metode). Jika tidak ada plugin API, jar header akan dihasilkan dari sumber, sehingga mengurangi jalur penting.

api_generating_plugins adalah subset dari plugins.

java_outputs

list JavaPluginInfo.java_outputs

Menampilkan informasi tentang output target mirip Java/Java ini.

plugin

JavaPluginData JavaPluginInfo.plugins

Menampilkan data tentang semua plugin yang harus diterapkan oleh target yang menggunakan.

File ini biasanya berupa java_plugin itu sendiri atau java_library yang mengekspor satu atau beberapa plugin.

java_library menjalankan pemrosesan anotasi dengan semua plugin dari kolom ini muncul di atribut deps dan plugins.

to_json

string JavaPluginInfo.to_json()

Tidak digunakan lagi. API ini tidak digunakan lagi dan akan segera dihapus. Jangan bergantung pada hal itu. Fungsi ini dinonaktifkan dengan ---incompatible_struct_has_no_methods. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera dilakukan.
Membuat string JSON dari parameter struct. Metode ini hanya berfungsi jika semua elemen struct (secara rekursif) berupa string, int, boolean, struct lainnya, daftar jenis ini atau kamus dengan kunci string dan nilai jenis ini. Kutipan dan baris baru dalam string akan di-escape. Contoh:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

Tidak digunakan lagi: sebagai gantinya, gunakan json.encode(x) atau json.encode_indent(x), yang berfungsi untuk nilai selain struct dan tidak mencemari namespace kolom struct.

to_proto

string JavaPluginInfo.to_proto()

Tidak digunakan lagi. API ini tidak digunakan lagi dan akan segera dihapus. Jangan bergantung pada hal itu. Fungsi ini dinonaktifkan dengan ---incompatible_struct_has_no_methods. Gunakan tanda ini untuk memverifikasi bahwa kode Anda kompatibel dengan penghapusan yang akan segera dilakukan.
Membuat pesan teks dari parameter struct. Metode ini hanya berfungsi jika semua elemen struct (secara rekursif) berupa string, int, boolean, struct atau dikte lain, atau daftar berjenis ini. Kutipan dan baris baru dalam string akan di-escape. Kunci struct diiterasi dalam urutan yang diurutkan. Contoh:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

Tidak digunakan lagi: gunakan proto.encode_text(x) sebagai gantinya.