Справочник грузового реестра - PullRequest
0 голосов
/ 01 мая 2019

Как указать другой каталог, в котором груз хранит распакованные источники, например, в Windows это %userprofile%/.cargo/registry/src?

Я работаю, это будет набор ящиков вроде:

myproject-tree/
  foo
    +Cargo.toml
  bar
    +Cargo.toml

Итак, я хотел бы, чтобы зависимости загружались в распакованном виде где-то рядом с каталогом myproject-tree, например.

myproject-tree/
cargo-cache/

Я думаю, что это облегчит проверку кода зависимостей (например, в редакторах кода с пользовательским интерфейсом дерева файлов). Я вижу, что есть CARGO_HOME, который, кажется, что-то вроде этого, но это не выглядит удобным, например, каждый раз, когда я собираюсь работать с myproject-tree, я должен установить его.

1 Ответ

0 голосов
/ 06 мая 2019

Похоже, это возможно.Я думаю, что это называется "vendoring", и у таких репозиториев, как Fuchsia и Mozilla, есть исходные копии сторонних ящиков в своих репозиториях.Вот что я нашел:

  • Cargo поддерживает функцию " Замена источника ", настроенную в .cargo / config, которая может находиться в относительном каталоге проекта:

С этой конфигурацией Cargo пытается найти все ящики в каталоге «vendor», а не запрашивает онлайн-реестр на crates.io.Используя замену источника Cargo может выразить:

Vendoring - можно определить пользовательские источники, которые представляют ящики в локальной файловой системе.Эти источники являются подмножествами заменяемых источников и при необходимости могут быть помечены в пакеты.

Зеркальное отображение - источники могут быть заменены эквивалентной версией, которая действует как кэш для самого crates.io.

  • Существует инструмент https://github.com/alexcrichton/cargo-vendor, который может использоваться для заполнения каталога исходными кодами зависимостей:

Просто запустите cargo vendor внутри любого грузового проекта:

...