Resolución de dependencias de bibliotecas
Para la resolución de dependencias de bibliotecas, el gráfico de dependencias completo se determina a partir de la Libraries.json lista de referencias y escrita para el Libraries.lock.json archivo de bloqueo.
La resolución de bibliotecas se ejecuta al crear una biblioteca por primera vez. Posteriormente, el usuario la activa manualmente. Tras la creación inicial de un proyecto de dispositivo, la resolución de bibliotecas se ejecuta automáticamente una sola vez, pero nunca más de forma automática, ni siquiera al abrir un proyecto. De este modo, los cambios en el gráfico de dependencias nunca pasan desapercibidos.
Para resolver las bibliotecas, utilice el Bibliotecas de resolución comando en el menú contextual del Libraries.json archivo. Las referencias se tienen en cuenta cuando aún no tienen una resolución o cuando su resolución almacenada ya no coincide con la definición en el archivo. Libraries.json archivo.
El Resolver todas las bibliotecas Este comando reconstruirá todo el gráfico.
Proceso de resolución
El gráfico de dependencias se construye de forma recursiva. Para cada biblioteca a la que se hace referencia, también se resuelven sus propias referencias. De esta forma, el gráfico se expande gradualmente hasta que se hayan determinado todas las dependencias
Cuando se hace referencia a una biblioteca mediante un patrón de versión, se examinan todas las fuentes de biblioteca disponibles durante la resolución para determinar la versión que mejor coincide. Las fuentes incluyen la caché de la biblioteca y todos los repositorios de biblioteca configurados.
Prioridad de resolución:
Una consulta se resuelve según una clasificación fija. Prevalece la primera regla aplicable.
Referencia mediante una ruta relativa
Referencia con una versión fija de la biblioteca
Referencia con un patrón de versión: se selecciona la última versión coincidente.
Marcadores de posición con una anulación en
Libraries.json(placeholderOverridessección)Marcadores de posición resueltos por un componente o extensión de CODESYS 4
Marcadores de posición con una resolución única a partir de las descripciones de los dispositivos.
Ruta en la descripción del dispositivo:
library-management\placeholder-libraries\
Errores y conflictos
Si se produce un conflicto durante la resolución de la biblioteca, el proceso se cancela con un error. En este caso, no se crea ningún archivo de bloqueo
Existe un conflicto en los siguientes casos:
La misma biblioteca se resuelve en diferentes versiones fijas.
Se resuelven diferentes bibliotecas para el mismo espacio de nombres.
Se hace referencia a una biblioteca simultáneamente mediante una versión fija y mediante un patrón de versión que no coincide.
Las diferentes descripciones de dispositivos resuelven el mismo marcador de posición de manera contradictoria.
Este caso no ocurre cuando se anula un marcador de posición en el
Libraries.jsonEl archivo ya define de forma única el marcador de posición.
También se mostrará un mensaje de error si no se puede resolver una biblioteca requerida. Si no se puede resolver una biblioteca opcional, solo se generará un mensaje de diagnóstico. En este caso, se omite la biblioteca y se continúa con la resolución.
Después de la resolución
Tras la resolución, las bibliotecas estarán disponibles. Si la ruta de una biblioteca es relativa, se comprueba que sea válida. Si la ruta apunta a un proyecto de biblioteca de origen, este se cargará en el espacio de trabajo como un proyecto editable. Las demás bibliotecas se restaurarán desde sus orígenes a la caché de bibliotecas, siempre que no existan ya allí. La ruta en el archivo de bloqueo apuntará entonces a la ubicación de la biblioteca en la caché.