Thông tin Java

Nhà cung cấp đóng gói thông tin về các mục tiêu giống Java và Java.

Hội viên

JavaInfo

JavaInfo JavaInfo(output_jar, compile_jar, source_jar=None, compile_jdeps=None, generated_class_jar=None, generated_source_jar=None, native_headers_jar=None, manifest_proto=None, neverlink=False, deps=[], runtime_deps=[], exports=[], exported_plugins=[], jdeps=None, native_libraries=[])

Hàm khởi tạo JavaInfo.

Các tham số

Thông số Nội dung mô tả
output_jar bắt buộc
Tệp được tạo bằng quá trình biên dịch (ví dụ: javac, scalac, v.v.).
compile_jar File; or None; bắt buộc
Một tệp jar được thêm làm phần phụ thuộc thời gian biên dịch thay cho output_jar. Thông thường, đây là ijar do run_ijar tạo ra. Nếu bạn không thể sử dụng ijar, hãy cân nhắc sử dụng kết quả của stamp_ijar. Nếu không muốn sử dụng cả hai, bạn chỉ cần truyền output_jar. Có một vài trường hợp đặc biệt khi tham số này có thể được đặt thành None, chẳng hạn như thêm một tệp jar có tài nguyên hoặc khi sử dụng trong quy tắc dòng lệnh như java_binary.
source_jar File; or None; mặc định = Không có
Tệp nguồn được dùng để tạo vùng dữ liệu đầu ra. Sử dụng pack_sources để tạo tệp nguồn này.
compile_jdeps File; or None; mặc định = Không
thông tin jdep về các phần phụ thuộc thời gian biên dịch mà JavaCompileAction sử dụng. Đây phải là một proto nhị phân được mã hoá bằng protobuf deps.proto đi kèm với Bazel. Nếu có, tệp này thường do trình biên dịch tiêu đề tạo ra.
generated_class_jar File; or None; mặc định = Không
Tệp jar chứa các tệp lớp được biên dịch từ các nguồn được tạo trong quá trình xử lý chú giải.
generated_source_jar File; or None; mặc định = Không có
Tệp nguồn được tạo sau quá trình xử lý chú giải.
native_headers_jar File; or None; mặc định = Không
Một tệp jar chứa các tệp tiêu đề CC hỗ trợ việc triển khai phương thức gốc (thường là kết quả của javac -h).
manifest_proto File; or None; mặc định = Không
Thông tin tệp kê khai cho dữ liệu đầu ra của quy tắc (nếu có). Đây phải là một proto nhị phân được mã hoá bằng tệp manifest.proto protobuf đi kèm với Bazel. IDE và các công cụ khác có thể sử dụng thông tin này để xử lý hiệu quả hơn.
default = False
Nếu true chỉ sử dụng thư viện này để biên dịch chứ không dùng cho thời gian chạy.
deps sequence of JavaInfos; mặc định = []
Các phần phụ thuộc thời gian biên dịch được dùng để tạo tệp đầu ra.
runtime_deps sequence of JavaInfos; mặc định = []
Các phần phụ thuộc thời gian chạy cần thiết cho thư viện này.
exports sequence of JavaInfos; mặc định = []
Các thư viện được cung cấp cho người dùng thư viện này. Xem thêm về java_library.exports.
exported_plugins sequence of JavaPluginInfos; mặc định = []
Danh sách các trình bổ trợ đã xuất. Không bắt buộc.
jdeps File; or None; mặc định = Không
thông tin jdeps cho đầu ra quy tắc (nếu có). Đây phải là một proto nhị phân được mã hoá bằng protobuf deps.proto đi kèm với Bazel. Nếu có, tệp này thường do một trình biên dịch tạo ra. IDE và các công cụ khác có thể sử dụng thông tin này để xử lý hiệu quả hơn.
native_libraries sequence of CcInfos; mặc định = []
CC phần phụ thuộc thư viện gốc cần thiết cho thư viện này.

annotation_processing

java_annotation_processing JavaInfo.annotation_processing

Trả về thông tin về trình xử lý chú giải được áp dụng trên mục tiêu giống Java/Java này.

Ngừng sử dụng: Vui lòng sử dụng plugins (trả về thông tin về trình xử lý chú giải sẽ được áp dụng bằng cách sử dụng đích). Có thể trả về None.

api_generating_plugins

JavaPluginData JavaInfo.api_generating_plugins

Trả về dữ liệu về việc API tạo trình bổ trợ do mục tiêu này xác định hoặc xuất.

Các trình xử lý chú giải này được áp dụng cho đích Java trước khi tạo các jars tiêu đề (chứa chữ ký phương thức). Khi không có trình bổ trợ API nào, các tệp tiêu đề sẽ được tạo từ các nguồn, giúp giảm đường dẫn quan trọng.

api_generating_plugins là một tập con của plugins.

compilation_info

java_compilation_info JavaInfo.compilation_info

Trả về thông tin biên dịch cho mục tiêu giống Java/Java này. Có thể trả về None.

compile_jars

depset JavaInfo.compile_jars

Trả về trực tiếp các Jar mà mục tiêu này yêu cầu tại thời điểm biên dịch. Chúng có thể là các tệp giao diện (ijar hoặc hjar), các tệp thông thường hoặc cả hai, tuỳ thuộc vào việc các quá trình triển khai quy tắc có chọn tạo các tệp giao diện hay không.

full_compile_jars

depset JavaInfo.full_compile_jars

Trực tiếp trả về các Jar thời gian biên dịch đầy đủ thông thường mà mục tiêu này yêu cầu. Chúng có thể là

Lưu ý: JavaInfo.compile_jars có thể trả về kết hợp các Jar giao diện và Jar thông thường.

Chỉ sử dụng phương pháp này nếu các Jar giao diện không hoạt động với(các) bộ quy tắc của bạn (ví dụ: một số mục tiêu Scala) Nếu bạn đang làm việc với các mục tiêu chỉ Java, bạn nên sử dụng các Jar giao diện thông qua JavaInfo.compile_jars

java_outputs

list JavaInfo.java_outputs

Trả về thông tin về đầu ra của mục tiêu giống Java/Java này.

module_flags_info

JavaModuleFlagsProvider JavaInfo.module_flags_info

Trả về cấu hình cờ mô-đun Java.

kết quả đầu ra

java_output_jars JavaInfo.outputs

Trả về thông tin về đầu ra của mục tiêu giống Java/Java này. Không dùng nữa: sử dụng java_outputs. Có thể trả về None.

trình bổ trợ

JavaPluginData JavaInfo.plugins

Trả về dữ liệu về tất cả trình bổ trợ mà một đích tiêu thụ sẽ áp dụng.

Thường thì đây là chính java_plugin hoặc java_library xuất một hoặc nhiều trình bổ trợ.

java_library chạy quá trình xử lý chú giải trong đó tất cả trình bổ trợ trong trường này xuất hiện trong các thuộc tính depsplugins.

runtime_output_jars

sequence JavaInfo.runtime_output_jars

Trả về danh sách các Jar thời gian chạy do mục tiêu giống Java/Java này tạo.

source_jars

sequence JavaInfo.source_jars

Trả về danh sách các Jar cùng tất cả các tệp nguồn (bao gồm cả những tệp được tạo bởi chú thích) của chính mục tiêu đó, tức là KHÔNG bao gồm các nguồn của các phần phụ thuộc bắc cầu.

to_json

string JavaInfo.to_json()

Không dùng nữa. API này không được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc mã sắp bị xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả phần tử cấu trúc (theo quy tắc đệ quy) là chuỗi, số nguyên, boolean, các cấu trúc khác, danh sách các loại này hoặc từ điển có khoá chuỗi và giá trị thuộc các kiểu này. Dấu ngoặc kép và các dòng mới trong chuỗi sẽ được thoát. Ví dụ:
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"}}}
.

Không dùng nữa: thay vào đó, hãy dùng json.encode(x) hoặc json.encode_indent(x). Các hàm này hoạt động với các giá trị không phải là cấu trúc và không làm ô nhiễm không gian tên của trường cấu trúc.

to_proto

string JavaInfo.to_proto()

Không dùng nữa. API này không được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc mã sắp bị xoá.
Tạo một tin nhắn văn bản từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả các phần tử cấu trúc (theo quy tắc đệ quy) là chuỗi, số nguyên, boolean, các cấu trúc hay lệnh chính tả khác hoặc danh sách thuộc những loại này. Dấu ngoặc kép và các dòng mới trong chuỗi sẽ được thoát. Các khoá cấu trúc được lặp lại theo thứ tự được sắp xếp. Ví dụ:
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
# }

Không dùng nữa: thay vào đó, hãy dùng proto.encode_text(x).

transitive_compile_time_jars

depset JavaInfo.transitive_compile_time_jars

Trả về tập hợp bắc cầu các Lọ cần thiết để xây dựng mục tiêu.

transitive_deps

depset JavaInfo.transitive_deps

Không dùng nữa: Thay vào đó, vui lòng sử dụng JavaInfo.transitive_compile_time_jars. Hàm này trả về cùng một giá trị.

transitive_native_libraries

depset JavaInfo.transitive_native_libraries

Trả về tập hợp bắc cầu các thư viện gốc CC theo yêu cầu của mục tiêu.

transitive_runtime_deps

depset JavaInfo.transitive_runtime_deps

Không dùng nữa: vui lòng sử dụng JavaInfo.transitive_runtime_jars. Phương thức này trả về cùng một giá trị

transitive_runtime_jars

depset JavaInfo.transitive_runtime_jars

Trả về một tập hợp bắc cầu các Jars cần thiết trên đường dẫn lớp thời gian chạy của mục tiêu.

transitive_source_jars

depset JavaInfo.transitive_source_jars

Trả về các Jars chứa các tệp nguồn của mục tiêu hiện tại và tất cả các phần phụ thuộc bắc cầu của mục tiêu đó.