Las siguientes funciones se pueden cargar desde @bazel_tools//tools/build_defs/repo:local.bzl.
Son reglas para que los directorios del sistema de archivos local estén disponibles como repositorios.
Configuración
Para usar estas reglas en una extensión de módulo, cárgalas en tu archivo .bzl y, luego, llámalas desde la función de implementación de tu extensión. Por ejemplo, para usar local_repository:
load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
def _my_extension_impl(mctx):
local_repository(name = "foo", path = "foo")
my_extension = module_extension(implementation = _my_extension_impl)
También puedes llamar directamente a estas reglas del repositorio en tu archivo MODULE.bazel con use_repo_rule:
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")
local_repository
load("@bazel//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name, path, repo_mapping)
Hace que un directorio local que ya contiene archivos de Bazel esté disponible como repositorio. Este directorio ya debería contener archivos BUILD de Bazel y un archivo de límite del repositorio. Si no contiene estos archivos, considera usar new_local_repository.
ATRIBUTOS
name |
Nombre: Obligatorio
Es un nombre único para este repositorio. |
path |
Cadena; obligatorio
Es la ruta de acceso al directorio que se pondrá a disposición como repositorio. La ruta de acceso puede ser absoluta o relativa a la raíz del espacio de trabajo. |
repo_mapping |
Diccionario: Cadena -> Cadena; opcional
Solo en el contexto de `WORKSPACE`: Es un diccionario que asigna el nombre del repositorio local al nombre del repositorio global. Esto permite controlar la resolución de dependencias del espacio de trabajo para las dependencias de este repositorio. Por ejemplo, una entrada `"@foo": "@bar"` declara que, en cualquier momento en que este repositorio dependa de `@foo` (como una dependencia de `@foo//some:target`), en realidad debería resolver esa dependencia dentro de `@bar` declarado de forma global (`@bar//some:target`). Este atributo _no_ se admite en el contexto de `MODULE.bazel` (cuando se invoca una regla de repositorio dentro de la función de implementación de una extensión de módulo). |
new_local_repository
load("@bazel//tools/build_defs/repo:local.bzl", "new_local_repository")
new_local_repository(name, build_file, build_file_content, path, repo_mapping)
Crea un directorio local que no contiene archivos de Bazel disponibles como repositorio. Este directorio no necesita contener archivos BUILD de Bazel ni un archivo de límite de repositorio, ya que esta regla de repositorio los creará. Si el directorio ya contiene archivos de Bazel, considera usar local_repository en su lugar.
ATRIBUTOS
name |
Nombre: Obligatorio
Es un nombre único para este repositorio. |
build_file |
Etiqueta: Opcional
Es un archivo que se usará como archivo BUILD para este repositorio. Se debe especificar exactamente uno de los campos "build_file" y "build_file_content". No es necesario que el archivo al que se dirige esta etiqueta se llame BUILD, pero puede hacerlo. Un nombre como "BUILD.nuevo-nombre-repo" podría funcionar bien para distinguirlo de los archivos BUILD reales. |
build_file_content |
Cadena; opcional
Es el contenido del archivo BUILD que se creará para este repositorio. Se debe especificar exactamente uno de los campos "build_file" y "build_file_content". |
path |
Cadena; obligatorio
Es la ruta de acceso al directorio que se pondrá a disposición como repositorio. La ruta de acceso puede ser absoluta o relativa a la raíz del espacio de trabajo. |
repo_mapping |
Diccionario: Cadena -> Cadena; opcional
Solo en el contexto de `WORKSPACE`: Es un diccionario que asigna el nombre del repositorio local al nombre del repositorio global. Esto permite controlar la resolución de dependencias del espacio de trabajo para las dependencias de este repositorio. Por ejemplo, una entrada `"@foo": "@bar"` declara que, en cualquier momento en que este repositorio dependa de `@foo` (como una dependencia de `@foo//some:target`), en realidad debería resolver esa dependencia dentro de `@bar` declarado de forma global (`@bar//some:target`). Este atributo _no_ se admite en el contexto de `MODULE.bazel` (cuando se invoca una regla de repositorio dentro de la función de implementación de una extensión de módulo). |