Bạn có thể tải các hàm sau đây từ @bazel_tools//tools/build_defs/repo:http.bzl
.
Quy tắc tải tệp và kho lưu trữ xuống qua HTTP.
Thiết lập
Để sử dụng các quy tắc này trong một tiện ích mô-đun, hãy tải các quy tắc đó trong tệp .bzl rồi gọi các quy tắc đó từ hàm triển khai của tiện ích. Ví dụ: để sử dụng http_archive
, hãy làm như sau:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
def _my_extension_impl(mctx):
http_archive(name = "foo", urls = [...])
my_extension = module_extension(implementation = _my_extension_impl)
Ngoài ra, bạn có thể trực tiếp gọi các quy tắc kho lưu trữ này trong tệp MODULE.bazel bằng use_repo_rule
:
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(name = "foo", urls = [...])
http_archive
load("@bazel//tools/build_defs/repo:http.bzl", "http_archive") http_archive(name, add_prefix, auth_patterns, build_file, build_file_content, canonical_id, integrity, netrc, patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches, remote_file_integrity, remote_file_urls, remote_module_file_integrity, remote_module_file_urls, remote_patch_strip, remote_patches, repo_mapping, sha256, strip_prefix, type, url, urls, workspace_file, workspace_file_content)
Tải một kho lưu trữ Bazel xuống dưới dạng tệp lưu trữ nén, giải nén tệp đó và cung cấp các mục tiêu của tệp để liên kết.
Công cụ này hỗ trợ các đuôi tệp sau: "zip"
, "jar"
, "war"
, "aar"
, "tar"
, "tar.gz"
, "tgz"
, "tar.xz"
, "txz"
, "tar.zst"
, "tzst"
, tar.bz2
, "ar"
hoặc "deb"
.
Ví dụ: Giả sử kho lưu trữ hiện tại chứa mã nguồn cho một chương trình trò chuyện, bắt nguồn từ thư mục ~/chat-app
. Ứng dụng cần phụ thuộc vào một thư viện SSL có tại http://example.com/openssl.zip. Tệp .zip
này chứa cấu trúc thư mục sau:
WORKSPACE
src/
openssl.cc
openssl.h
Trong kho lưu trữ cục bộ, người dùng tạo một tệp openssl.BUILD
chứa định nghĩa mục tiêu sau:
cc_library(
name = "openssl-lib",
srcs = ["src/openssl.cc"],
hdrs = ["src/openssl.h"],
)
Các mục tiêu trong kho lưu trữ ~/chat-app
có thể phụ thuộc vào mục tiêu này nếu bạn thêm các dòng sau vào ~/chat-app/WORKSPACE
:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "my_ssl",
url = "http://example.com/openssl.zip",
sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
build_file = "@//:openssl.BUILD",
)
Sau đó, các mục tiêu sẽ chỉ định @my_ssl//:openssl-lib
làm phần phụ thuộc.
THUỘC TÍNH
name |
Tên; bắt buộc
Tên duy nhất cho kho lưu trữ này. |
add_prefix |
Chuỗi; không bắt buộc
Thư mục đích tương ứng với thư mục kho lưu trữ. Tệp lưu trữ sẽ được giải nén vào thư mục này, sau khi áp dụng `strip_prefix` (nếu có) cho các đường dẫn tệp trong tệp lưu trữ. Ví dụ: tệp `foo-1.2.3/src/foo.h` sẽ được giải nén thành `bar/src/foo.h` nếu `add_prefix = "bar"` và `strip_prefix = "foo-1.2.3"`. |
auth_patterns |
Dictionary: String -> String; không bắt buộc
Một từ điển không bắt buộc ánh xạ tên máy chủ lưu trữ đến các mẫu uỷ quyền tuỳ chỉnh.
Nếu tên máy chủ của một URL có trong từ điển này, thì giá trị sẽ được dùng làm mẫu khi tạo tiêu đề uỷ quyền cho yêu cầu http. Điều này cho phép sử dụng các lược đồ uỷ quyền tuỳ chỉnh được dùng trong nhiều nhà cung cấp dịch vụ lưu trữ đám mây phổ biến.
Mẫu này hiện hỗ trợ 2 mã thông báo: auth_patterns = { "storage.cloudprovider.com": "Bearer <password>" } machine storage.cloudprovider.com password RANDOM-TOKEN Authorization: Bearer RANDOM-TOKEN |
build_file |
Nhãn; không bắt buộc
Tệp dùng làm tệp BUILD cho kho lưu trữ này.Thuộc tính này là một nhãn tuyệt đối (sử dụng "@//" cho kho lưu trữ chính). Bạn không cần đặt tên tệp là BUILD, nhưng có thể đặt tên tệp là (chẳng hạn như BUILD.new-repo-name có thể phù hợp để phân biệt tệp này với các tệp BUILD thực tế của kho lưu trữ. Bạn có thể chỉ định build_file hoặc build_file_content, nhưng không được chỉ định cả hai. |
build_file_content |
Chuỗi; không bắt buộc
Nội dung của tệp BUILD cho kho lưu trữ này. Bạn có thể chỉ định build_file hoặc build_file_content, nhưng không được chỉ định cả hai. |
canonical_id |
Chuỗi; không bắt buộc
Mã nhận dạng chuẩn của tệp đã tải xuống. Nếu được chỉ định và không trống, Bazel sẽ không lấy tệp từ bộ nhớ đệm, trừ phi tệp đó được thêm vào bộ nhớ đệm theo yêu cầu có cùng mã nhận dạng chuẩn. Nếu không được chỉ định hoặc để trống, theo mặc định, Bazel sẽ sử dụng URL của tệp làm mã nhận dạng chuẩn. Điều này giúp phát hiện lỗi thường gặp khi cập nhật URL mà không cập nhật cả hàm băm, dẫn đến các bản dựng thành công cục bộ nhưng không thành công trên những máy không có tệp trong bộ nhớ đệm. Bạn có thể tắt hành vi này bằng --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0. |
integrity |
Chuỗi; không bắt buộc
Tổng kiểm tra dự kiến ở định dạng Tính toàn vẹn của tài nguyên phụ của tệp đã tải xuống. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. _Việc bỏ qua tổng kiểm là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi._ Tốt nhất là việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải thực hiện để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên đặt thuộc tính này hoặc "sha256" trước khi vận chuyển. |
netrc |
Chuỗi; không bắt buộc
Vị trí của tệp .netrc cần dùng để xác thực |
patch_args |
Danh sách các chuỗi; không bắt buộc
Các đối số được cung cấp cho công cụ vá. Mặc định là -p0 (xem thuộc tính "patch_strip"), tuy nhiên, bạn thường cần -p1 cho các bản vá do git tạo. Nếu bạn chỉ định nhiều đối số -p, thì đối số cuối cùng sẽ có hiệu lực.Nếu bạn chỉ định các đối số khác ngoài -p, Bazel sẽ quay lại sử dụng công cụ dòng lệnh vá thay vì triển khai bản vá gốc của Bazel. Khi quay lại công cụ dòng lệnh vá và bạn không chỉ định thuộc tính patch_tool, thì hệ thống sẽ sử dụng "patch". Điều này chỉ ảnh hưởng đến các tệp bản vá trong thuộc tính "patches". |
patch_cmds |
Danh sách các chuỗi; không bắt buộc
Trình tự các lệnh Bash sẽ được áp dụng trên Linux/MacOS sau khi các bản vá được áp dụng. |
patch_cmds_win |
Danh sách các chuỗi; không bắt buộc
Trình tự các lệnh Powershell sẽ được áp dụng trên Windows sau khi áp dụng các bản vá. Nếu bạn không đặt thuộc tính này, patch_cmds sẽ được thực thi trên Windows, yêu cầu phải có tệp nhị phân Bash. |
patch_strip |
Số nguyên; không bắt buộc
Khi được đặt thành "N", điều này tương đương với việc chèn "-pN" vào đầu "patch_args". |
patch_tool |
Chuỗi; không bắt buộc
Tiện ích patch(1) để sử dụng. Nếu bạn chỉ định tham số này, Bazel sẽ sử dụng công cụ vá lỗi được chỉ định thay vì triển khai vá lỗi gốc của Bazel. |
patches |
Danh sách nhãn; không bắt buộc
Danh sách các tệp sẽ được áp dụng làm bản vá sau khi giải nén tệp lưu trữ. Theo mặc định, nó sử dụng chế độ triển khai bản vá gốc của Bazel không hỗ trợ so khớp mờ và bản vá nhị phân, nhưng Bazel sẽ quay lại sử dụng công cụ dòng lệnh patch nếu thuộc tính `patch_tool` được chỉ định hoặc có các đối số khác ngoài `-p` trong thuộc tính `patch_args`. |
remote_file_integrity |
Dictionary: String -> String; không bắt buộc
Bản đồ đường dẫn tương đối của tệp (khoá) đến giá trị tính toàn vẹn của tệp (giá trị). Các đường dẫn tương đối này phải liên kết đến các tệp (khoá) trong thuộc tính "remote_file_urls". |
remote_file_urls |
Từ điển: Chuỗi -> Danh sách chuỗi; không bắt buộc
Bản đồ các đường dẫn tương đối (khoá) đến danh sách URL (giá trị) sẽ được tải xuống và cung cấp dưới dạng các tệp được phủ lên kho lưu trữ. Điều này hữu ích khi bạn muốn thêm tệp WORKSPACE hoặc BUILD.bazel lên trên một kho lưu trữ hiện có. Các tệp được tải xuống trước khi áp dụng các bản vá trong thuộc tính "patches" và danh sách URL phải là tất cả các bản sao có thể có của cùng một tệp. Các URL sẽ được thử theo thứ tự cho đến khi có một URL thành công. |
remote_module_file_integrity |
Chuỗi; không bắt buộc
Chỉ sử dụng nội bộ. |
remote_module_file_urls |
Danh sách các chuỗi; không bắt buộc
Chỉ sử dụng nội bộ. |
remote_patch_strip |
Số nguyên; không bắt buộc
Số lượng dấu gạch chéo ở đầu cần loại bỏ khỏi tên tệp trong các bản vá từ xa. |
remote_patches |
Dictionary: String -> String; không bắt buộc
Bản đồ của URL tệp vá đến giá trị tính toàn vẹn của tệp đó, các tệp này được áp dụng sau khi trích xuất kho lưu trữ và trước khi áp dụng tệp vá từ thuộc tính "patches". Thư viện này sử dụng chế độ triển khai bản vá gốc của Bazel, bạn có thể chỉ định số lượng dải bản vá bằng `remote_patch_strip` |
repo_mapping |
Dictionary: String -> String; không bắt buộc
Chỉ trong ngữ cảnh "WORKSPACE": một từ điển từ tên kho lưu trữ cục bộ đến tên kho lưu trữ chung. Điều này cho phép kiểm soát quá trình phân giải phần phụ thuộc của không gian làm việc đối với các phần phụ thuộc của kho lưu trữ này. Ví dụ: mục "@foo": "@bar" khai báo rằng, bất cứ khi nào kho lưu trữ này phụ thuộc vào "@foo" (chẳng hạn như một phần phụ thuộc vào "@foo//some:target"), thì kho lưu trữ này thực sự phải phân giải phần phụ thuộc đó trong "@bar" được khai báo trên toàn cầu ("@bar//some:target"). Thuộc tính này _không_ được hỗ trợ trong ngữ cảnh "MODULE.bazel" (khi gọi một quy tắc kho lưu trữ trong hàm triển khai của tiện ích mô-đun). |
sha256 |
Chuỗi; không bắt buộc
SHA-256 dự kiến của tệp đã tải xuống. Giá trị này phải khớp với SHA-256 của tệp đã tải xuống. _Việc bỏ qua SHA-256 là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi._ Tốt nhất là việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải thực hiện việc phát triển này để dễ dàng hơn, nhưng bạn phải đặt thuộc tính này hoặc "tính toàn vẹn" trước khi vận chuyển. |
strip_prefix |
Chuỗi; không bắt buộc
Tiền tố thư mục cần loại bỏ khỏi các tệp đã trích xuất. Nhiều tệp lưu trữ chứa một thư mục cấp cao nhất chứa tất cả các tệp hữu ích trong tệp lưu trữ. Thay vì phải chỉ định tiền tố này nhiều lần trong `build_file`, bạn có thể dùng trường này để xoá tiền tố đó khỏi tất cả các tệp đã trích xuất. Ví dụ: giả sử bạn đang dùng "foo-lib-latest.zip", trong đó có thư mục "foo-lib-1.2.3/". Trong thư mục này có một tệp "WORKSPACE" và các thư mục "src/", "lib/" và "test/" chứa mã thực tế mà bạn muốn tạo. Chỉ định `strip_prefix = "foo-lib-1.2.3"` để dùng thư mục `foo-lib-1.2.3` làm thư mục cấp cao nhất. Xin lưu ý rằng nếu có các tệp bên ngoài thư mục này, thì các tệp đó sẽ bị loại bỏ và không thể truy cập (ví dụ: tệp giấy phép cấp cao nhất). Điều này bao gồm các tệp/thư mục bắt đầu bằng tiền tố nhưng không nằm trong thư mục (ví dụ: foo-lib-1.2.3.release-notes). Nếu tiền tố được chỉ định không khớp với một thư mục trong kho lưu trữ, Bazel sẽ trả về lỗi. |
type |
Chuỗi; không bắt buộc
Loại tệp lưu trữ của tệp đã tải xuống. Theo mặc định, loại tệp lưu trữ được xác định từ đuôi tệp của URL. Nếu tệp không có đuôi, bạn có thể chỉ định rõ một trong các đuôi sau: "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", "tar.zst", "tzst", "tar.bz2", "ar" hoặc"deb". |
url |
Chuỗi; không bắt buộc
URL đến một tệp sẽ được cung cấp cho Bazel. Đây phải là một tệp, URL http hoặc https. Tuân theo các lệnh chuyển hướng. Không hỗ trợ xác thực. Bạn có thể đạt được sự linh hoạt hơn bằng tham số urls cho phép chỉ định các URL thay thế để tìm nạp. |
urls |
Danh sách các chuỗi; không bắt buộc
Danh sách URL đến một tệp sẽ được cung cấp cho Bazel. Mỗi mục nhập phải là một tệp, URL http hoặc https. Tuân theo các lệnh chuyển hướng. Không hỗ trợ xác thực. Các URL sẽ được thử theo thứ tự cho đến khi có một URL thành công, vì vậy, bạn nên liệt kê các bản sao cục bộ trước. Nếu tất cả nội dung tải xuống đều không thành công, thì quy tắc sẽ không thành công. |
workspace_file |
Nhãn; không bắt buộc
Thuộc tính không có thao tác; không sử dụng. |
workspace_file_content |
Chuỗi; không bắt buộc
Thuộc tính không có thao tác; không sử dụng. |
BIẾN MÔI TRƯỜNG
Quy tắc kho lưu trữ này phụ thuộc vào các biến môi trường sau:
BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID
http_file
load("@bazel//tools/build_defs/repo:http.bzl", "http_file") http_file(name, auth_patterns, canonical_id, downloaded_file_path, executable, integrity, netrc, repo_mapping, sha256, url, urls)
Tải một tệp xuống từ một URL và cung cấp tệp đó để dùng làm nhóm tệp.
Ví dụ: Giả sử bạn cần có một gói debian cho các quy tắc tuỳ chỉnh của mình. Gói này có tại http://example.com/package.deb. Sau đó, bạn có thể thêm vào tệp WORKSPACE:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "my_deb",
url = "http://example.com/package.deb",
sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
)
Các mục tiêu sẽ chỉ định @my_deb//file
làm phần phụ thuộc để phụ thuộc vào tệp này.
THUỘC TÍNH
name |
Tên; bắt buộc
Tên duy nhất cho kho lưu trữ này. |
auth_patterns |
Dictionary: String -> String; không bắt buộc
Một từ điển không bắt buộc ánh xạ tên máy chủ lưu trữ đến các mẫu uỷ quyền tuỳ chỉnh.
Nếu tên máy chủ của một URL có trong từ điển này, thì giá trị sẽ được dùng làm mẫu khi tạo tiêu đề uỷ quyền cho yêu cầu http. Điều này cho phép sử dụng các lược đồ uỷ quyền tuỳ chỉnh được dùng trong nhiều nhà cung cấp dịch vụ lưu trữ đám mây phổ biến.
Mẫu này hiện hỗ trợ 2 mã thông báo: auth_patterns = { "storage.cloudprovider.com": "Bearer <password>" } machine storage.cloudprovider.com password RANDOM-TOKEN Authorization: Bearer RANDOM-TOKEN |
canonical_id |
Chuỗi; không bắt buộc
Mã nhận dạng chuẩn của tệp đã tải xuống. Nếu được chỉ định và không trống, Bazel sẽ không lấy tệp từ bộ nhớ đệm, trừ phi tệp đó được thêm vào bộ nhớ đệm theo yêu cầu có cùng mã nhận dạng chuẩn. Nếu không được chỉ định hoặc để trống, theo mặc định, Bazel sẽ sử dụng URL của tệp làm mã nhận dạng chuẩn. Điều này giúp phát hiện lỗi thường gặp khi cập nhật URL mà không cập nhật cả hàm băm, dẫn đến các bản dựng thành công cục bộ nhưng không thành công trên những máy không có tệp trong bộ nhớ đệm. Bạn có thể tắt hành vi này bằng --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0. |
downloaded_file_path |
Chuỗi; không bắt buộc
Đường dẫn được chỉ định cho tệp đã tải xuống |
executable |
Boolean; không bắt buộc
Nếu tệp đã tải xuống cần được thực thi. |
integrity |
Chuỗi; không bắt buộc
Tổng kiểm tra dự kiến ở định dạng Tính toàn vẹn của tài nguyên phụ của tệp đã tải xuống. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. _Việc bỏ qua tổng kiểm là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi._ Tốt nhất là việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải thực hiện để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên đặt thuộc tính này hoặc "sha256" trước khi vận chuyển. |
netrc |
Chuỗi; không bắt buộc
Vị trí của tệp .netrc cần dùng để xác thực |
repo_mapping |
Dictionary: String -> String; không bắt buộc
Chỉ trong ngữ cảnh "WORKSPACE": một từ điển từ tên kho lưu trữ cục bộ đến tên kho lưu trữ chung. Điều này cho phép kiểm soát quá trình phân giải phần phụ thuộc của không gian làm việc đối với các phần phụ thuộc của kho lưu trữ này. Ví dụ: mục "@foo": "@bar" khai báo rằng, bất cứ khi nào kho lưu trữ này phụ thuộc vào "@foo" (chẳng hạn như một phần phụ thuộc vào "@foo//some:target"), thì kho lưu trữ này thực sự phải phân giải phần phụ thuộc đó trong "@bar" được khai báo trên toàn cầu ("@bar//some:target"). Thuộc tính này _không_ được hỗ trợ trong ngữ cảnh "MODULE.bazel" (khi gọi một quy tắc kho lưu trữ trong hàm triển khai của tiện ích mô-đun). |
sha256 |
Chuỗi; không bắt buộc
SHA-256 dự kiến của tệp đã tải xuống. Giá trị này phải khớp với SHA-256 của tệp đã tải xuống. _Việc bỏ qua SHA-256 là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi._ Tốt nhất là việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải thực hiện việc này để phát triển dễ dàng hơn nhưng nên đặt trước khi vận chuyển. |
url |
Chuỗi; không bắt buộc
URL đến một tệp sẽ được cung cấp cho Bazel. Đây phải là một tệp, URL http hoặc https. Tuân theo các lệnh chuyển hướng. Không hỗ trợ xác thực. Bạn có thể đạt được sự linh hoạt hơn bằng tham số urls cho phép chỉ định các URL thay thế để tìm nạp. |
urls |
Danh sách các chuỗi; không bắt buộc
Danh sách URL đến một tệp sẽ được cung cấp cho Bazel. Mỗi mục nhập phải là một tệp, URL http hoặc https. Tuân theo các lệnh chuyển hướng. Không hỗ trợ xác thực. Các URL sẽ được thử theo thứ tự cho đến khi có một URL thành công, vì vậy, bạn nên liệt kê các bản sao cục bộ trước. Nếu tất cả nội dung tải xuống đều không thành công, thì quy tắc sẽ không thành công. |
BIẾN MÔI TRƯỜNG
Quy tắc kho lưu trữ này phụ thuộc vào các biến môi trường sau:
BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID
http_jar
load("@bazel//tools/build_defs/repo:http.bzl", "http_jar") http_jar(name, auth_patterns, canonical_id, downloaded_file_name, integrity, netrc, repo_mapping, sha256, url, urls)
Tải một jar xuống từ một URL và cung cấp jar đó dưới dạng java_import
Tệp đã tải xuống phải có đuôi .jar.
Ví dụ: Giả sử kho lưu trữ hiện tại chứa mã nguồn cho một chương trình trò chuyện, được đặt tại thư mục ~/chat-app
. Nó cần phụ thuộc vào một thư viện SSL có sẵn từ http://example.com/openssl-0.2.jar
.
Các mục tiêu trong kho lưu trữ ~/chat-app
có thể phụ thuộc vào mục tiêu này nếu các dòng sau được thêm vào ~/chat-app/WORKSPACE
:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")
http_jar(
name = "my_ssl",
url = "http://example.com/openssl-0.2.jar",
sha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
)
Các mục tiêu sẽ chỉ định @my_ssl//jar
làm phần phụ thuộc để phụ thuộc vào jar này.
Bạn cũng có thể tham chiếu các tệp trên hệ thống hiện tại (localhost) bằng cách sử dụng "file:///path/to/file" nếu đang dùng các hệ thống dựa trên Unix. Nếu bạn đang dùng Windows, hãy sử dụng "file:///c:/path/to/file". Trong cả hai ví dụ, hãy lưu ý đến 3 dấu gạch chéo (/
) – 2 dấu gạch chéo đầu tiên thuộc về file://
và dấu gạch chéo thứ ba thuộc về đường dẫn tuyệt đối đến tệp.
THUỘC TÍNH
name |
Tên; bắt buộc
Tên duy nhất cho kho lưu trữ này. |
auth_patterns |
Dictionary: String -> String; không bắt buộc
Một từ điển không bắt buộc ánh xạ tên máy chủ lưu trữ đến các mẫu uỷ quyền tuỳ chỉnh.
Nếu tên máy chủ của một URL có trong từ điển này, thì giá trị sẽ được dùng làm mẫu khi tạo tiêu đề uỷ quyền cho yêu cầu http. Điều này cho phép sử dụng các lược đồ uỷ quyền tuỳ chỉnh được dùng trong nhiều nhà cung cấp dịch vụ lưu trữ đám mây phổ biến.
Mẫu này hiện hỗ trợ 2 mã thông báo: auth_patterns = { "storage.cloudprovider.com": "Bearer <password>" } machine storage.cloudprovider.com password RANDOM-TOKEN Authorization: Bearer RANDOM-TOKEN |
canonical_id |
Chuỗi; không bắt buộc
Mã nhận dạng chuẩn của tệp đã tải xuống. Nếu được chỉ định và không trống, Bazel sẽ không lấy tệp từ bộ nhớ đệm, trừ phi tệp đó được thêm vào bộ nhớ đệm theo yêu cầu có cùng mã nhận dạng chuẩn. Nếu không được chỉ định hoặc để trống, theo mặc định, Bazel sẽ sử dụng URL của tệp làm mã nhận dạng chuẩn. Điều này giúp phát hiện lỗi thường gặp khi cập nhật URL mà không cập nhật cả hàm băm, dẫn đến các bản dựng thành công cục bộ nhưng không thành công trên những máy không có tệp trong bộ nhớ đệm. Bạn có thể tắt hành vi này bằng --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0. |
downloaded_file_name |
Chuỗi; không bắt buộc
Tên tệp được chỉ định cho tệp jar đã tải xuống |
integrity |
Chuỗi; không bắt buộc
Tổng kiểm tra dự kiến ở định dạng Tính toàn vẹn của tài nguyên phụ của tệp đã tải xuống. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. _Việc bỏ qua tổng kiểm là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi._ Tốt nhất là việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải thực hiện để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên đặt thuộc tính này hoặc "sha256" trước khi vận chuyển. |
netrc |
Chuỗi; không bắt buộc
Vị trí của tệp .netrc cần dùng để xác thực |
repo_mapping |
Dictionary: String -> String; không bắt buộc
Chỉ trong ngữ cảnh "WORKSPACE": một từ điển từ tên kho lưu trữ cục bộ đến tên kho lưu trữ chung. Điều này cho phép kiểm soát quá trình phân giải phần phụ thuộc của không gian làm việc đối với các phần phụ thuộc của kho lưu trữ này. Ví dụ: mục "@foo": "@bar" khai báo rằng, bất cứ khi nào kho lưu trữ này phụ thuộc vào "@foo" (chẳng hạn như một phần phụ thuộc vào "@foo//some:target"), thì kho lưu trữ này thực sự phải phân giải phần phụ thuộc đó trong "@bar" được khai báo trên toàn cầu ("@bar//some:target"). Thuộc tính này _không_ được hỗ trợ trong ngữ cảnh "MODULE.bazel" (khi gọi một quy tắc kho lưu trữ trong hàm triển khai của tiện ích mô-đun). |
sha256 |
Chuỗi; không bắt buộc
SHA-256 dự kiến của tệp đã tải xuống. Giá trị này phải khớp với SHA-256 của tệp đã tải xuống. _Việc bỏ qua SHA-256 là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi._ Tốt nhất là việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải thực hiện việc phát triển này để dễ dàng hơn, nhưng bạn phải đặt thuộc tính này hoặc "tính toàn vẹn" trước khi vận chuyển. |
url |
Chuỗi; không bắt buộc
URL đến một tệp sẽ được cung cấp cho Bazel. Đây phải là một tệp, URL http hoặc https. Tuân theo các lệnh chuyển hướng. Không hỗ trợ xác thực. Bạn có thể đạt được sự linh hoạt hơn bằng tham số urls cho phép chỉ định các URL thay thế để tìm nạp. URL phải kết thúc bằng ".jar". |
urls |
Danh sách các chuỗi; không bắt buộc
Danh sách URL đến một tệp sẽ được cung cấp cho Bazel. Mỗi mục nhập phải là một tệp, URL http hoặc https. Tuân theo các lệnh chuyển hướng. Không hỗ trợ xác thực. Các URL sẽ được thử theo thứ tự cho đến khi có một URL thành công, vì vậy, bạn nên liệt kê các bản sao cục bộ trước. Nếu tất cả nội dung tải xuống đều không thành công, thì quy tắc sẽ không thành công. Tất cả URL phải kết thúc bằng ".jar". |
BIẾN MÔI TRƯỜNG
Quy tắc kho lưu trữ này phụ thuộc vào các biến môi trường sau:
BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID