java_Common

Tiện ích hỗ trợ biên dịch Java trong Starlark.

Hội viên

BootClassPathInfo

Provider java_common.BootClassPathInfo

Nhà cung cấp dùng để cung cấp thông tin đường dẫn lớp khởi động

biên dịch

JavaInfo java_common.compile(ctx, *, source_jars=[], source_files=[], output, output_source_jar=None, javac_opts=[], deps=[], runtime_deps=[], exports=[], plugins=[], exported_plugins=[], native_libraries=[], annotation_processor_additional_inputs=[], annotation_processor_additional_outputs=[], strict_deps='ERROR', java_toolchain, host_javabase=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

Biên dịch các tệp/tệp nguồn Java từ quá trình triển khai quy tắc Starlark và trả về một trình cung cấp đại diện cho kết quả biên dịch và có thể được thêm vào tập hợp các trình cung cấp do quy tắc này đưa ra.

Tham số

Thông số Mô tả
ctx bắt buộc
Ngữ cảnh quy tắc.
source_jars sequence of Files; mặc định = []
Danh sách các lọ cần biên dịch. Phải chỉ định ít nhất một trong số source_jars hoặc source_file.
source_files sequence of Files; mặc định = []
Danh sách các tệp nguồn Java cần được biên dịch. Phải chỉ định ít nhất một trong số source_jars hoặc source_file.
output bắt buộc
output_source_jar File; or None; mặc định = Không có
Tệp nguồn đầu ra. Không bắt buộc. Giá trị mặc định là "{output_jar}-src.jar" nếu không được đặt.
javac_opts sequence of strings; mặc định = []
Danh sách các tuỳ chọn javac mà bạn muốn. Không bắt buộc.
deps sequence of JavaInfos; mặc định = []
Danh sách các phần phụ thuộc. Không bắt buộc.
runtime_deps sequence of JavaInfos; mặc định = []
Danh sách các phần phụ thuộc trong thời gian chạy. Không bắt buộc.
exports sequence of JavaInfos; mặc định = []
Danh sách tệp xuất. Không bắt buộc.
plugins sequence of JavaPluginInfos; or sequence of JavaInfos; mặc định = []
Danh sách trình bổ trợ. Không bắt buộc.
exported_plugins sequence of JavaPluginInfos; or sequence of JavaInfos; mặc định = []
Danh sách trình bổ trợ đã xuất. Không bắt buộc.
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_processor_additional_inputs sequence of Files; mặc định = []
Danh sách dữ liệu đầu vào mà hành động biên dịch Java sẽ thực hiện ngoài các nguồn Java để xử lý chú giải.
annotation_processor_additional_outputs sequence of Files; mặc định = []
Danh sách kết quả mà hành động biên dịch Java sẽ tạo ra ngoài lớp jar từ quá trình xử lý chú giải.
strict_deps mặc định = 'ERROR'
Chuỗi chỉ định cách xử lý phần phụ thuộc nghiêm ngặt. Giá trị có thể là: "OFF", "ERROR", "WARN" và 'DEFAULT'. Để biết thêm chi tiết, hãy xem /docs/user-manual#flag--strict_java_deps. Theo mặc định, lỗi "ERROR".
java_toolchain bắt buộc
Một JavaToolchainInfo được dùng cho quá trình biên dịch này. Bắt buộc.
host_javabase mặc định = Không có
Không dùng nữa. Tham số 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_java_common_parameters. 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á.
Không dùng nữa: Bạn có thể bỏ tham số này (host_javabase được cung cấp cùng với java_toolchain)
sourcepath sequence of Files; mặc định = []
resources sequence of Files; mặc định = []
resource_jars sequence of Files; mặc định = []
classpath_resources sequence of Files; mặc định = []
mặc định = Sai
enable_annotation_processing mặc định = Đúng
Tắt tính năng xử lý chú giải trong quá trình biên dịch này, khiến mọi trình xử lý chú giải được cung cấp trong các trình bổ trợ hoặc trong export_plugin của phần phụ thuộc đều bị bỏ qua.
enable_compile_jar_action mặc định = Đúng
Cho phép biên dịch tiêu đề hoặc tạo ijar. Nếu bạn đặt thành False, thì hệ thống sẽ buộc sử dụng jar đầy đủ trong đường dẫn lớp biên dịch của mọi phần phụ thuộc. Việc này là dành cho các mục tiêu không phải thư viện, chẳng hạn như tệp nhị phân không có phần phụ thuộc.
add_exports sequence of strings; mặc định = []
Cho phép thư viện này truy cập vào /đã cho. Không bắt buộc.
add_opens sequence of strings; mặc định = []
Cho phép thư viện này truy cập tương ứng vào /đã cho. Không bắt buộc.

JavaPluginInfo

Provider java_common.JavaPluginInfo

Khoá dùng để truy xuất trình cung cấp chứa thông tin về các trình bổ trợ Java. Bạn có thể truy cập cùng một giá trị như JavaPluginInfo.
Ưu tiên sử dụng JavaPluginInfo trong mã mới.

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

Khoá dùng để truy xuất trình cung cấp chứa thông tin về môi trường thời gian chạy Java đang được sử dụng.

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

Khoá dùng để truy xuất nhà cung cấp chứa thông tin về chuỗi công cụ Java đang được sử dụng.

make_non_strict

JavaInfo java_common.make_non_strict(java_info)

Trả về một trình cung cấp Java mới có phần tệp trực tiếp (direct-jars) là sự kết hợp cả các tệp jar trực tiếp và gián tiếp của trình cung cấp Java cho trước.

Tham số

Thông số Mô tả
java_info bắt buộc
Thông tin về java.

hợp nhất

JavaInfo java_common.merge(providers, *, merge_java_outputs=True, merge_source_jars=True)

Hợp nhất các trình cung cấp đã cho thành một JavaInfo duy nhất.

Tham số

Thông số Mô tả
providers sequence of JavaInfos; bắt buộc
Danh sách các nhà cung cấp cần hợp nhất.
merge_java_outputs mặc định = Đúng
merge_source_jars mặc định = Đúng

pack_sources

File java_common.pack_sources(actions, *, output_jar=None, output_source_jar=None, sources=[], source_jars=[], java_toolchain, host_javabase=None)

Đóng gói các tệp jar nguồn và tệp jar nguồn vào một tệp jar nguồn duy nhất. Giá trị trả về thường được chuyển đến

JavaInfo#source_jar

.Bạn phải có ít nhất một trong các thông số output_jar hoặc output_source_jar.

Tham số

Thông số Mô tả
actions bắt buộc
ctx.actions
output_jar File; or None; mặc định = Không có
Không dùng nữa. Tham số 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_java_common_parameters. 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á.
Không dùng nữa: Tệp đầu ra của quy tắc. Được dùng để đặt tên cho tệp nguồn kết quả. Thông số này sẽ đặt thông số output_source_jar thành "{output_jar}-src.jar". Hãy sử dụng trực tiếp thông số output_source_jar này.
output_source_jar File; or None; mặc định = Không có
Tệp nguồn đầu ra.
sources sequence of Files; mặc định = []
Danh sách tệp nguồn Java sẽ được đóng gói vào tệp nguồn.
source_jars sequence of Files; mặc định = []
Danh sách các lọ nguồn sẽ được đóng gói vào lọ nguồn.
java_toolchain bắt buộc
Một JavaToolchainInfo được dùng để tìm công cụ ijar.
host_javabase mặc định = Không có
Không dùng nữa. Tham số 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_java_common_parameters. 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á.
Không dùng nữa: Bạn có thể bỏ tham số này (host_javabase được cung cấp cùng với java_toolchain)
Có thể trả về None.

provider

Provider java_common.provider

Trả về trình cung cấp đã khai báo trong Java.
Có thể truy cập cùng một giá trị như JavaInfo.
Ưu tiên sử dụng JavaInfo trong mã mới.

run_ijar

File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)

Chạy ijar trên một lọ, xoá các phần tử phương thức của tệp đó. Điều này giúp giảm việc tạo lại các tệp jar phụ thuộc trong mọi biên dịch lại chỉ bao gồm các thay đổi đơn giản đối với việc triển khai phương thức. Giá trị trả về thường được chuyển đến JavaInfo#compile_jar.

Tham số

Thông số Mô tả
actions bắt buộc
ctx.actions
jar bắt buộc
Tệp để chạy ijar.
target_label Label; or None; mặc định = Không có
Nhãn đích để đóng dấu vào lọ. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ truyền ctx.label để đóng dấu vào lọ bằng nhãn của quy tắc hiện tại.
java_toolchain bắt buộc
Một JavaToolchainInfo được dùng để tìm công cụ ijar.

stamp_jar

File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)

Đóng dấu một lọ có nhãn đích để hỗ trợ add_dep. Giá trị trả về thường được chuyển đến JavaInfo#compile_jar. Ưu tiên sử dụng run_ijar khi có thể.

Tham số

Thông số Mô tả
actions bắt buộc
ctx.actions
jar bắt buộc
Tệp để chạy stamp_jar.
target_label bắt buộc
Nhãn đích để đóng dấu vào lọ. Dùng để hỗ trợ add_dep. Thông thường, bạn sẽ truyền ctx.label để đóng dấu vào lọ bằng nhãn của quy tắc hiện tại.
java_toolchain bắt buộc
Một JavaToolchainInfo được dùng để tìm công cụ stamp_jar.

to_java_binary_info

JavaInfo java_common.to_java_binary_info(java_info)

Trả về bản sao của JavaInfo đã cho với thông tin tối thiểu do một java_binary trả về

Tham số

Thông số Mô tả
java_info bắt buộc
JavaInfo để cải thiện.