Las siguientes funciones se pueden cargar desde @bazel_tools//tools/build_defs/repo:git.bzl
.
Son reglas para clonar repositorios externos de Git.
git_repository
load("@bazel//tools/build_defs/repo:git.bzl", "git_repository") git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
Clona un repositorio de Git externo.
Clona un repositorio de Git, consulta la etiqueta o la confirmación especificadas y hace que sus destinos estén disponibles para la vinculación. También determina el ID de la confirmación que se extrajo y su fecha, y devuelve un diccionario con parámetros que proporcionan una versión reproducible de esta regla (que no necesariamente es una etiqueta).
Primero, Bazel intentará realizar una recuperación superficial solo de la confirmación especificada. Si eso falla (generalmente debido a la falta de compatibilidad del servidor), se recurrirá a una recuperación completa del repositorio.
Se prefiere http_archive
en lugar de git_repository
.
Estos son los motivos:
- Las reglas del repositorio de Git dependen del sistema
git(1)
, mientras que el descargador de HTTP está integrado en Bazel y no tiene dependencias del sistema. http_archive
admite una lista deurls
como duplicados, ygit_repository
solo admite un soloremote
.http_archive
funciona con la caché del repositorio, pero no congit_repository
. Consulta #5116 para obtener más información.
ATRIBUTOS
name |
Nombre (obligatorio)
Es un nombre único para este repositorio. |
branch |
Cadena; opcional
rama del repositorio remoto que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación. |
build_file |
Etiqueta: Opcional
Es el archivo que se usará como archivo BUILD para este repositorio.Este atributo es una etiqueta absoluta (usa "@//" para el repositorio principal). No es necesario que el archivo se llame BUILD, pero puede llamarse de otra manera (algo como BUILD.nombre-repo-nuevo puede funcionar bien para distinguirlo de los archivos BUILD reales del repositorio). |
build_file_content |
Cadena; opcional
Es el contenido del archivo BUILD de este repositorio. |
commit |
Cadena; opcional
Es la confirmación específica que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación. |
init_submodules |
Booleano; opcional
Indica si se deben clonar los submódulos en el repositorio. |
patch_args |
Lista de cadenas; opcional
Son los argumentos que se proporcionan a la herramienta de parche. El valor predeterminado es -p0 (consulta el atributo "patch_strip"), pero, por lo general, se necesitará -p1 para los parches generados por Git. Si se especifican varios argumentos -p, tendrá efecto el último.Si se especifican argumentos que no sean -p, Bazel recurrirá al uso de la herramienta de línea de comandos patch en lugar de la implementación de patch nativa de Bazel. Cuando se recurre a la herramienta de línea de comandos patch y no se especifica el atributo patch_tool, se usará "patch". |
patch_cmds |
Lista de cadenas; opcional
Secuencia de comandos de Bash que se aplicarán en Linux o macOS después de aplicar los parches. |
patch_cmds_win |
Lista de cadenas; opcional
Secuencia de comandos de PowerShell que se aplicarán en Windows después de que se apliquen los parches. Si no se establece este atributo, patch_cmds se ejecutará en Windows, lo que requiere que exista el archivo binario de Bash. |
patch_strip |
Número entero; opcional
Cuando se establece en "N", esto equivale a insertar "-pN" al principio de "patch_args". |
patch_tool |
Cadena; opcional
Es la utilidad patch(1) que se usará. Si se especifica, Bazel usará la herramienta de parches especificada en lugar de la implementación de parches nativa de Bazel. |
patches |
Lista de etiquetas (opcional)
Es una lista de archivos que se aplicarán como parches después de extraer el archivo. De forma predeterminada, usa la implementación de parches nativa de Bazel, que no admite la coincidencia aproximada ni los parches binarios, pero Bazel recurrirá a la herramienta de línea de comandos patch si se especifica el atributo "patch_tool" o si hay argumentos distintos de "-p" en el atributo "patch_args". |
recursive_init_submodules |
Booleano; opcional
Indica si se deben clonar los submódulos de forma recursiva en el repositorio. |
remote |
Cadena; obligatorio
Es el URI del repositorio de Git remoto. |
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). |
shallow_since |
Cadena; opcional
Es una fecha opcional, no posterior a la confirmación especificada. El argumento no se permite si se especifica una etiqueta o rama (que siempre se puede clonar con --depth=1). Establecer una fecha cercana a la confirmación especificada puede permitir una clonación superficial del repositorio, incluso si el servidor no admite recuperaciones superficiales de confirmaciones arbitrarias. Debido a errores en la implementación de --shallow-since de Git, no se recomienda usar este atributo, ya que puede provocar errores de recuperación. |
strip_prefix |
Cadena; opcional
Es un prefijo de directorio que se quita de los archivos extraídos. |
tag |
Cadena; opcional
etiqueta en el repositorio remoto que se extrajo. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación. |
verbose |
Booleano; opcional |
workspace_file |
Etiqueta: Opcional
Es el archivo que se usará como archivo `WORKSPACE` para este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos. |
workspace_file_content |
Cadena; opcional
Es el contenido del archivo WORKSPACE de este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos. |
new_git_repository
load("@bazel//tools/build_defs/repo:git.bzl", "new_git_repository") new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
Clona un repositorio de Git externo.
Clona un repositorio de Git, consulta la etiqueta o la confirmación especificadas y hace que sus destinos estén disponibles para la vinculación. También determina el ID de la confirmación que se extrajo y su fecha, y devuelve un diccionario con parámetros que proporcionan una versión reproducible de esta regla (que no necesariamente es una etiqueta).
Primero, Bazel intentará realizar una recuperación superficial solo de la confirmación especificada. Si eso falla (generalmente debido a la falta de compatibilidad del servidor), se recurrirá a una recuperación completa del repositorio.
Se prefiere http_archive
en lugar de git_repository
.
Estos son los motivos:
- Las reglas del repositorio de Git dependen del sistema
git(1)
, mientras que el descargador de HTTP está integrado en Bazel y no tiene dependencias del sistema. http_archive
admite una lista deurls
como duplicados, ygit_repository
solo admite un soloremote
.http_archive
funciona con la caché del repositorio, pero no congit_repository
. Consulta #5116 para obtener más información.
ATRIBUTOS
name |
Nombre (obligatorio)
Es un nombre único para este repositorio. |
branch |
Cadena; opcional
rama del repositorio remoto que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación. |
build_file |
Etiqueta: Opcional
Es el archivo que se usará como archivo BUILD para este repositorio.Este atributo es una etiqueta absoluta (usa "@//" para el repositorio principal). No es necesario que el archivo se llame BUILD, pero puede llamarse de otra manera (algo como BUILD.nombre-repo-nuevo puede funcionar bien para distinguirlo de los archivos BUILD reales del repositorio). |
build_file_content |
Cadena; opcional
Es el contenido del archivo BUILD de este repositorio. |
commit |
Cadena; opcional
Es la confirmación específica que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación. |
init_submodules |
Booleano; opcional
Indica si se deben clonar los submódulos en el repositorio. |
patch_args |
Lista de cadenas; opcional
Son los argumentos que se proporcionan a la herramienta de parche. El valor predeterminado es -p0 (consulta el atributo "patch_strip"), pero, por lo general, se necesitará -p1 para los parches generados por Git. Si se especifican varios argumentos -p, tendrá efecto el último.Si se especifican argumentos que no sean -p, Bazel recurrirá al uso de la herramienta de línea de comandos patch en lugar de la implementación de patch nativa de Bazel. Cuando se recurre a la herramienta de línea de comandos patch y no se especifica el atributo patch_tool, se usará "patch". |
patch_cmds |
Lista de cadenas; opcional
Secuencia de comandos de Bash que se aplicarán en Linux o macOS después de aplicar los parches. |
patch_cmds_win |
Lista de cadenas; opcional
Secuencia de comandos de PowerShell que se aplicarán en Windows después de que se apliquen los parches. Si no se establece este atributo, patch_cmds se ejecutará en Windows, lo que requiere que exista el archivo binario de Bash. |
patch_strip |
Número entero; opcional
Cuando se establece en "N", esto equivale a insertar "-pN" al principio de "patch_args". |
patch_tool |
Cadena; opcional
Es la utilidad patch(1) que se usará. Si se especifica, Bazel usará la herramienta de parches especificada en lugar de la implementación de parches nativa de Bazel. |
patches |
Lista de etiquetas (opcional)
Es una lista de archivos que se aplicarán como parches después de extraer el archivo. De forma predeterminada, usa la implementación de parches nativa de Bazel, que no admite la coincidencia aproximada ni los parches binarios, pero Bazel recurrirá a la herramienta de línea de comandos patch si se especifica el atributo "patch_tool" o si hay argumentos distintos de "-p" en el atributo "patch_args". |
recursive_init_submodules |
Booleano; opcional
Indica si se deben clonar los submódulos de forma recursiva en el repositorio. |
remote |
Cadena; obligatorio
Es el URI del repositorio de Git remoto. |
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). |
shallow_since |
Cadena; opcional
Es una fecha opcional, no posterior a la confirmación especificada. El argumento no se permite si se especifica una etiqueta o rama (que siempre se puede clonar con --depth=1). Establecer una fecha cercana a la confirmación especificada puede permitir una clonación superficial del repositorio, incluso si el servidor no admite recuperaciones superficiales de confirmaciones arbitrarias. Debido a errores en la implementación de --shallow-since de Git, no se recomienda usar este atributo, ya que puede provocar errores de recuperación. |
strip_prefix |
Cadena; opcional
Es un prefijo de directorio que se quita de los archivos extraídos. |
tag |
Cadena; opcional
etiqueta en el repositorio remoto que se extrajo. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación. |
verbose |
Booleano; opcional |
workspace_file |
Etiqueta: Opcional
Es el archivo que se usará como archivo `WORKSPACE` para este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos. |
workspace_file_content |
Cadena; opcional
Es el contenido del archivo WORKSPACE de este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos. |