Thông tin Java

Một trì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.

Tham số

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

Không dùng nữa: 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 đó được áp dụng cho một mục tiêu Java trước khi tạo các jar tiêu đề (chứa chữ ký phương thức). Khi không có trình bổ trợ API, các tệp tiêu đề sẽ được tạo từ các nguồn này, giúp giảm bớt đường dẫn quan trọng.

api_generating_plugins là 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ực tiếp trả về các Jars (jar) mà mục tiêu này yêu cầu vào thời gian biên dịch. Chúng có thể là jar giao diện (ijar hoặc hjar), jar thông thường hoặc cả hai, tuỳ thuộc vào việc triển khai quy tắc có chọn tạo jar giao diện hay không.

full_compile_jars

depset JavaInfo.full_compile_jars

Trực tiếp trả về các Jars thông thường, đầy đủ thời gian biên dịch 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 Hũ giao diện và các Hũ 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 đang làm việc với các mục tiêu chỉ dành cho 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ề kết quả 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.

dữ liệu đầu ra

java_output_jars JavaInfo.outputs

Trả về thông tin về kết quả 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 mục tiêu tiêu thụ nên áp dụng.

Đây thường 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ợ của trường này đều 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 Jars thời gian chạy được tạo bởi mục tiêu giống Java/Java này.

source_jars

sequence JavaInfo.source_jars

Trả về một danh sách các Jar chứa tất cả các tệp nguồn (bao gồm cả những tệp nguồn do chú thích tạo ra) của chính mục tiêu đó, tức là KHÔNG bao gồm các nguồn của 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 đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với ---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 yêu cầu sắp xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hiệu quả nếu tất cả các phần tử cấu trúc (theo đệ quy) là chuỗi, số nguyên, boolean, 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. Các dấu ngoặc kép và các dòng mới trong chuỗi là ký tự 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 sử dụng json.encode(x) hoặc json.encode_indent(x). Tệp này phù hợp với các giá trị không phải cấu trúc và không gây ô 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 đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với ---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 yêu cầu sắp 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) là chuỗi, int, boolean, các cấu trúc khác, lệnh chính tả hoặc danh sách thuộc các loại này. Các dấu ngoặc kép và các dòng mới trong chuỗi là ký tự thoát. 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 sử 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: Vui lòng dùng JavaInfo.transitive_compile_time_jars. Hàm này sẽ 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ủa thư viện gốc CC mà mục tiêu yêu cầ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. Hàm 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 Jar 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 Jar 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 đó.