MODULE.bazel 파일

MODULE.bazel 파일에서 사용할 수 있는 메서드입니다.

회원

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

이 종속 항목이 레지스트리가 아닌 특정 위치의 보관 파일(zip, gzip 등)에서 가져와야 함을 지정합니다. 이 지시문은 루트 모듈에서만 적용됩니다. 즉, 모듈이 다른 모듈에 의해 종속 항목으로 사용되는 경우 자체 재정의가 무시됩니다.

매개변수

매개변수 설명
module_name required
이 재정의를 적용할 Bazel 모듈 종속 항목의 이름입니다.
urls string 또는 string의 반복 가능한 객체입니다. 필수
보관 파일의 URL입니다. http(s):// 또는 file:// URL일 수 있습니다.
integrity 기본값은 ''
보관 파일의 예상 체크섬으로, 하위 요소 무결성 형식입니다.
strip_prefix 기본값은 ''입니다.
추출된 파일에서 제거할 디렉터리 접두사입니다.
patches 문자열의 반복 가능한 객체입니다. 기본값은 []입니다.
이 모듈에 적용할 패치 파일을 가리키는 라벨 목록입니다. 패치 파일은 최상위 프로젝트의 소스 트리에 있어야 합니다. 목록 순서대로 적용됩니다.
patch_cmds 문자열의 반복 가능한 값입니다. 기본값은 []입니다.
패치가 적용된 후 Linux/Macos에 적용할 Bash 명령어의 시퀀스입니다.
patch_strip 기본값은 0입니다.
Unix 패치의 --strip 인수와 동일합니다.

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

다른 Bazel 모듈에 대한 직접 종속 항목을 선언합니다.

매개변수

매개변수 설명
name required
직접 종속 항목으로 추가할 모듈의 이름입니다.
version 기본값은 ''입니다.
직접 종속 항목으로 추가할 모듈의 버전입니다.
max_compatibility_level 기본값은 -1입니다.
모듈이 직접 종속 항목으로 추가되도록 지원되는 최대 compatibility_level입니다. 모듈의 버전은 지원되는 최소 호환성 수준, 이 속성이 지정되지 않은 경우 최대 버전을 암시합니다.
repo_name 기본값은 ''입니다.
이 종속 항목을 나타내는 외부 저장소의 이름입니다. 기본적으로 모듈의 이름입니다.
dev_dependency 기본값은 False
입니다. 이 값이 true이면 현재 모듈이 루트 모듈이 아니거나 `--ignore_dev_dependency`가 사용 설정된 경우 이 종속 항목이 무시됩니다.

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0, init_submodules=False, strip_prefix='')

종속 항목이 Git 저장소의 특정 커밋에서 가져와야 함을 지정합니다. 이 디렉티브는 루트 모듈에서만 적용됩니다. 즉, 모듈이 다른 모듈의 종속 항목으로 사용되는 경우 자체 재정의는 무시됩니다.

매개변수

매개변수 설명
module_name 필수
이 재정의를 적용할 Bazel 모듈 종속 항목의 이름입니다.
remote 필수
원격 Git 저장소의 URL입니다.
commit 기본값은 ''입니다.
체크아웃해야 하는 커밋입니다.
patches 문자열의 반복 가능한 객체입니다. 기본값은 []입니다.
이 모듈에 적용할 패치 파일을 가리키는 라벨 목록입니다. 패치 파일은 최상위 프로젝트의 소스 트리에 있어야 합니다. 목록 순서대로 적용됩니다.
patch_cmds 문자열의 반복 가능한 값입니다. 기본값은 []입니다.
패치가 적용된 후 Linux/Macos에 적용할 Bash 명령어의 시퀀스입니다.
patch_strip 기본값은 0입니다.
Unix 패치의 --strip 인수와 동일합니다.
init_submodules 기본값은 False
가져온 저장소의 git 하위 모듈을 재귀적으로 초기화해야 하는지 여부입니다.
strip_prefix 기본값은 ''입니다.
추출된 파일에서 제거할 디렉터리 접두사입니다. 이를 사용하여 git 저장소의 하위 디렉터리를 타겟팅할 수 있습니다. 하위 디렉터리에는 이 `git_override`에 전달된 `module_name` 인수와 동일한 모듈 이름이 있는 자체 `MODULE.bazel` 파일이 있어야 합니다.

include

None include(label)

다른 MODULE.bazel과 유사한 파일의 콘텐츠를 포함합니다. 실제로 include()는 포함된 파일이 include() 호출 위치에 텍스트로 배치된 것처럼 동작하지만, 변수 바인딩 (예: use_extension에 사용되는 바인딩)은 포함된 파일이나 포함 파일이 아닌 발생한 파일에서만 표시됩니다.

루트 모듈에서만 include()를 사용할 수 있습니다. bazel_dep의 MODULE 파일이 include()를 사용하면 오류입니다.

기본 저장소의 파일만 포함할 수 있습니다.

include()를 사용하면 루트 모듈 파일을 여러 부분으로 분할하여 거대한 MODULE.bazel 파일을 방지하거나 개별 시맨틱 세그먼트의 액세스 제어를 더 효과적으로 관리할 수 있습니다.

매개변수

매개변수 설명
label 필수
포함할 파일을 가리키는 라벨입니다. 라벨은 기본 저장소의 파일을 가리켜야 합니다. 즉, 라벨은 이중 슬래시 (//)로 시작해야 합니다.

inject_repo

None inject_repo(extension_proxy, *args, **kwargs)

지정된 모듈 확장 프로그램에 하나 이상의 새 저장소를 삽입합니다. 현재 모듈이 루트 모듈이 아니거나 `--ignore_dev_dependency`가 사용 설정된 경우에는 무시됩니다.

대신 override_repo를 사용하여 기존 저장소를 재정의합니다.

매개변수

매개변수 설명
extension_proxy 필수
use_extension 호출에서 반환된 모듈 확장 프로кси 객체입니다.
args required
현재 모듈에 표시되고 동일한 이름으로 확장 프로그램에 삽입되어야 하는 저장소입니다.
kwargs 필수
확장 프로그램에 삽입할 새 저장소입니다. 여기서 값은 현재 모듈 범위 내 저장소의 이름이고 키는 확장 프로그램에서 표시될 이름입니다.

local_path_override

None local_path_override(module_name, path)

종속 항목이 로컬 디스크의 특정 디렉터리에서 가져와야 한다고 지정합니다. 이 디렉티브는 루트 모듈에서만 적용됩니다. 즉, 모듈이 다른 모듈의 종속 항목으로 사용되는 경우 자체 재정의는 무시됩니다.

매개변수

매개변수 설명
module_name required
이 재정의를 적용할 Bazel 모듈 종속 항목의 이름입니다.
path 필수
이 모듈이 있는 디렉터리의 경로입니다.

모듈

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

현재 Bazel 저장소로 표시되는 Bazel 모듈의 특정 속성을 선언합니다. 이러한 속성은 모듈의 필수 메타데이터(예: 이름 및 버전)이거나 현재 모듈 및 종속 항목의 동작에 영향을 미칩니다.

최대 한 번만 호출되어야 하며, 호출될 경우 MODULE.bazel 파일의 첫 번째 지시문이어야 합니다. 이 모듈이 루트 모듈인 경우에만 생략할 수 있습니다 (즉, 다른 모듈에서 종속되지 않는 경우).

매개변수

매개변수 설명
name 기본값은 ''입니다.
모듈의 이름입니다. 이 모듈이 루트 모듈인 경우에만 생략할 수 있습니다 (예: 다른 모듈에 의존하지 않을 경우). 유효한 모듈 이름은 1) 소문자 (a~z), 숫자 (0~9), 마침표 (.), 하이픈 (-), 밑줄 (_)만 포함해야 합니다. 2) 소문자로 시작해야 합니다. 3) 소문자 또는 숫자로 끝나야 합니다.
version 기본값은 ''입니다.
모듈의 버전입니다. 이 모듈이 루트 모듈인 경우에만 생략할 수 있습니다(즉, 다른 모듈에서 종속되지 않는 경우). 버전은 완화된 SemVer 형식이어야 합니다. 자세한 내용은 문서를 참고하세요.
compatibility_level 기본값은 0
모듈의 호환성 수준입니다. 호환되지 않는 주요 변경사항이 도입될 때마다 변경해야 합니다. 이는 SemVer 측면에서 본질적으로 모듈의 '주 버전'이지만 버전 문자열 자체에 삽입되지 않고 별도의 필드로 존재한다는 점을 제외하고는 동일합니다. 호환성 수준이 다른 모듈은 이름이 다른 모듈인 것처럼 버전 확인에 참여하지만 최종 종속 항목 그래프에는 동일한 이름이지만 호환성 수준이 다른 여러 모듈을 포함할 수 없습니다(multiple_version_override가 적용되는 경우는 예외). 자세한 내용은 문서를 참고하세요.
repo_name 기본값은 ''입니다.
모듈 자체에 표시되는 이 모듈을 나타내는 저장소의 이름입니다. 기본적으로 저장소 이름은 모듈 이름입니다. 모듈 이름과 다른 저장소 이름을 사용해 온 프로젝트를 쉽게 마이그레이션하기 위해 지정할 수 있습니다.
bazel_compatibility string이 반복 가능합니다. 기본값은 []입니다.
사용자가 이 모듈과 호환되는 Bazel 버전을 선언할 수 있는 bazel 버전 목록입니다. 종속 항목 확인에는 영향을 미치지 않지만 bzlmod는 이 정보를 사용하여 현재 Bazel 버전이 호환되는지 확인합니다. 이 값의 형식은 쉼표로 구분된 일부 제약 조건 값의 문자열입니다. 세 가지 제약 조건이 지원됩니다. <=X.X.X: Bazel 버전이 X.X.X보다 크거나 같아야 합니다. 최신 버전에 알려진 비호환 변경사항이 있는 경우에 사용됩니다. >=X.X.X: Bazel 버전이 X.X.X 이상이어야 합니다.X.X.X 이후에만 사용할 수 있는 일부 기능에 종속되는 경우에 사용합니다. -X.X.X: Bazel 버전 X.X.X가 호환되지 않습니다. X.X.X에 작동 중단을 일으키는 버그가 있지만 이후 버전에서 수정된 경우에 사용합니다.

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

종속 항목이 여전히 레지스트리에서 가져와야 하지만 여러 버전이 공존할 수 있도록 지정합니다. 자세한 내용은 문서를 참고하세요. 이 디렉티브는 루트 모듈에서만 적용됩니다. 즉, 모듈이 다른 모듈의 종속 항목으로 사용되는 경우 자체 재정의는 무시됩니다.

매개변수

매개변수 설명
module_name 필수
이 재정의를 적용할 Bazel 모듈 종속 항목의 이름입니다.
versions 문자열의 반복 가능, 필수
공존할 수 있는 버전을 명시적으로 지정합니다. 이러한 버전은 종속 항목 그래프 사전 선택에 이미 있어야 합니다. 이 모듈의 종속 항목은 동일한 호환성 수준에서 허용되는 버전 중 가장 높은 버전으로 '업그레이드'되지만, 동일한 호환성 수준에서 허용되는 버전보다 높은 버전의 종속 항목은 오류가 발생합니다.
registry 기본값은 ''
이 모듈의 레지스트리를 재정의합니다. 기본 레지스트리 목록에서 이 모듈을 찾는 대신 지정된 레지스트리를 사용해야 합니다.

override_repo

None override_repo(extension_proxy, *args, **kwargs)

지정된 모듈 확장 프로그램에 의해 정의된 하나 이상의 저장소를 현재 모듈에 표시되는 지정된 저장소로 재정의합니다. 현재 모듈이 루트 모듈이 아니거나 `--ignore_dev_dependency` 가 사용 설정된 경우 무시됩니다.

대신 inject_repo를 사용하여 새 저장소를 추가합니다.

매개변수

매개변수 설명
extension_proxy 필수
use_extension 호출에서 반환되는 모듈 확장 프로그램 프록시 객체입니다.
args 필수
현재 모듈의 동일한 이름의 저장소로 재정의해야 하는 확장 프로그램의 저장소입니다.
kwargs 필수
확장 프로그램에서 생성한 저장소에 적용할 재정의입니다. 여기서 값은 현재 모듈 범위에 있는 저장소의 이름이고 키는 확장 프로그램에서 재정의할 저장소의 이름입니다.

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

이 모듈이 선택될 때 등록할 이미 정의된 실행 플랫폼을 지정합니다. 절대 타겟 패턴이어야 합니다(예: @ 또는 //로 시작). 자세한 내용은 도구 모음 확인을 참고하세요.

매개변수

매개변수 설명
dev_dependency 기본값은 False
입니다. 이 옵션이 true이면 현재 모듈이 루트 모듈이 아니거나 `--ignore_dev_dependency`가 사용 설정된 경우 실행 플랫폼이 등록되지 않습니다.
platform_labels stringsequence, 필수
등록할 플랫폼의 라벨입니다.

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

이 모듈이 선택되면 등록될 이미 정의된 도구 모음을 지정합니다. 절대 타겟 패턴이어야 합니다(예: @ 또는 //로 시작). 자세한 내용은 도구 모음 확인을 참고하세요.

매개변수

매개변수 설명
dev_dependency 기본값은 False입니다.
true인 경우 현재 모듈이 루트 모듈이 아니거나 `--ignore_dev_dependency` 가 사용 설정된 경우 도구 모음이 등록되지 않습니다.
toolchain_labels 문자열시퀀스, 필수
등록할 도구 모음의 라벨입니다. 라벨에 :all를 포함할 수 있으며, 이 경우 패키지의 모든 도구 모음 제공 타겟이 이름순으로 사전순으로 등록됩니다.

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

여전히 레지스트리에서 종속 항목을 가져와야 하지만 버전을 고정하거나 레지스트리를 재정의하거나 적용되는 패치 목록을 명시합니다. 이 디렉티브는 루트 모듈에서만 적용됩니다. 즉, 모듈이 다른 모듈의 종속 항목으로 사용되는 경우 자체 재정의는 무시됩니다.

매개변수

매개변수 설명
module_name 필수
이 재정의를 적용할 Bazel 모듈 종속 항목의 이름입니다.
version 기본값은 ''입니다.
종속 항목 그래프에서 이 모듈의 선언된 버전을 재정의합니다. 즉, 이 모듈은 이 재정의 버전에 '고정'됩니다. 레지스트리 또는 패치만 재정의하려는 경우 이 속성을 생략할 수 있습니다.
registry 기본값은 ''입니다.
이 모듈의 레지스트리를 재정의합니다. 레지스트리의 기본 목록에서 이 모듈을 찾는 대신 제공된 레지스트리를 사용해야 합니다.
patches 문자열의 반복 가능한 객체입니다. 기본값은 []입니다.
이 모듈에 적용할 패치 파일을 가리키는 라벨 목록입니다. 패치 파일은 최상위 프로젝트의 소스 트리에 있어야 합니다. 목록 순서대로 적용됩니다.

패치가 MODULE.bazel 파일을 변경하는 경우 이러한 변경사항은 루트 모듈에서 패치 파일을 제공하는 경우에만 적용됩니다.

patch_cmds 문자열의 반복 가능한 값입니다. 기본값은 []입니다.
패치가 적용된 후 Linux/Macos에 적용할 Bash 명령어의 시퀀스입니다.

MODULE.bazel 파일을 변경해도 효과가 없습니다.

patch_strip 기본값은 0입니다.
Unix 패치의 --strip 인수와 동일합니다.

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

모듈 확장을 나타내는 프록시 객체를 반환합니다. 해당 메서드를 호출하여 모듈 확장 태그를 생성할 수 있습니다.

매개변수

매개변수 설명
extension_bzl_file 필수
모듈 확장자를 정의하는 Starlark 파일의 라벨입니다.
extension_name 필수
사용할 모듈 확장 프로그램의 이름입니다. 이 이름의 기호는 Starlark 파일에서 내보내야 합니다.
dev_dependency 기본값은 False
true이면 현재 모듈이 루트 모듈이 아니거나 `--ignore_dev_dependency`가 사용 설정된 경우 모듈 확장 프로그램의 이 사용이 무시됩니다.
isolate 기본값은 False
실험용입니다. 이 매개변수는 실험 단계이며 언제든지 변경될 수 있습니다. 이 방법을 사용하지 마세요. ---experimental_isolated_extension_usages을(를) 설정하여 실험적으로 사용 설정할 수 있습니다.
true이면 이 모듈 확장 프로그램의 이 사용은 이 모듈과 다른 모듈의 다른 모든 사용과 격리됩니다. 이 용도로 생성된 태그는 다른 용도에 영향을 미치지 않으며 이 용도로 확장 프로그램에서 생성된 저장소는 확장 프로그램에서 생성된 다른 모든 저장소와 구별됩니다.

이 매개변수는 현재 실험용이며 --experimental_isolated_extension_usages 플래그와 함께만 사용할 수 있습니다.

use_repo

None use_repo(extension_proxy, *args, **kwargs)

지정된 모듈 확장 프로그램에서 생성된 저장소를 하나 이상 현재 모듈의 범위로 가져옵니다.

매개변수

매개변수 설명
extension_proxy 필수
use_extension 호출에서 반환된 모듈 확장 프로кси 객체입니다.
args 필수
가져올 저장소의 이름입니다.
kwargs required
현재 모듈의 범위로 다른 이름으로 가져올 특정 저장소를 지정합니다. 키는 현재 범위에서 사용할 이름이어야 하지만 값은 모듈 확장 프로그램에서 내보낸 원래 이름이어야 합니다.

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

MODULE.bazel 파일에서 저장소 규칙으로 직접 호출할 수 있는 프록시 값을 하나 이상 반환합니다. 이러한 방식으로 생성된 저장소는 프록시에서 name 속성을 사용하여 선언된 이름으로 현재 모듈에만 표시됩니다. 암시적 불리언 dev_dependency 속성은 프록시에서 특정 저장소가 현재 모듈이 루트 모듈인 경우에만 생성되어야 함을 나타내는 데도 사용할 수 있습니다.

매개변수

매개변수 설명
repo_rule_bzl_file 필수
저장소 규칙을 정의하는 Starlark 파일의 라벨입니다.
repo_rule_name 필수
사용할 저장소 규칙의 이름입니다. 이 이름의 기호는 Starlark 파일로 내보내야 합니다.