Guía 47 de 53
Dependencias externas y locks
Una declaración de dependencias con políticas explícitas de instalación, frozen y offline.
En esta página
Declara dependencias una vez en el alcance del archivo. Importa los providers explícitamente; sus alias seleccionan el mismo entorno. Los imports nativos eligen los símbolos usados en cada fragmento.
// Prepare once: zolo install examples/features/14-modules/47-unified-dependencies.zolo
// Requires Rust, C++/vcpkg and the JVM/Kotlin provider toolchains for preparation.
// parity-timeout-ms:300000
use plugin rust::{rust as rs}
use plugin native::{cpp}
use plugin jvm::{kotlin as kt}
deps {
rs::serde_json = "1.0.145"
cpp::fmt = { version = "11.0.2", default_features = true }
kt::"com.google.guava:guava" = "33.4.0-jre"
}
extern rs fn answer() -> int {
let value: serde_json::Value = serde_json::from_str(r#"{"answer":42}"#).unwrap();
value["answer"].as_i64().unwrap()
}
extern cpp fn formatted(value: int) -> str {
#include <fmt/format.h>
return fmt::format("exact {}", value);
}
extern kt fn join(values: [str]) -> str {
import com.google.common.base.Joiner
return Joiner.on(", ").join(values.asIterable())
}
print(answer())
print(formatted(9007199254740993))
print(join(["Kotlin", "Maven", "Zolo"]))
// expected:
// 42
// exact 9007199254740993
// Kotlin, Maven, ZoloPolítica de instalación¶
auto prepara dependencias ausentes antes de ejecutar código del usuario. manual exige un entorno preparado e informa el comando de instalación si falta. offline usa solo artefactos locales compatibles. Abrir una fuente en el editor nunca instala paquetes ni ejecuta su código.
zolo install analysis.zolo
zolo install --frozen
zolo run analysis.zolo --offline --frozenLocks y ejecución offline¶
--frozen exige un lock compatible y prohíbe cambios; por sí solo no impide descargar artefactos ya fijados. Combina --offline y --frozen para impedir la red y los cambios del lock. Las versiones siguientes son pins exactos ilustrativos, no recomendaciones de las últimas versiones.
Adaptadores de ecosistemas¶
NuGet, paquetes Python, npm, Maven, Cargo, módulos Go y vcpkg conservan sus reglas de resolución. Java/Kotlin comparten el entorno JVM y JS/TS comparten Node. Los artefactos preparados conservan assets nativos, runtimes y metadatos de integridad; copiar un ejecutable no elimina automáticamente todas las dependencias de runtime.
Integraciones con lenguajes de programación · Tipos entre lenguajes
DOCS / OPINIÓN
¿Esta página dejó alguna pregunta?
Cuéntanos dónde te perdió la explicación. La documentación también forma parte de la experiencia del lenguaje.