![](/img/trans.png)
[英]How to effectively cache cargo/Rust projects in an Azure Build Pipeline
[英]Why is cargo build cache invalidating?
我有一个准系统工作区项目:
.
├── build-debug.sh
├── Cargo.lock
├── Cargo.toml
├── common
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── rs-test.iml
├── server
│ ├── Cargo.toml
│ └── src
│ └── main.rs
└── wui
├── Cargo.toml
└── src
└── lib.rs
rs 文件要么是空的,要么只是一个空的主函数。
服务器和 wui 依赖于 common: common = { path = "../common" }
。
通用项目有一个 crates.io 依赖项,我想是构建脚本或 proc 宏依赖项。
构建脚本:
cargo build -p wui --target wasm32-unknown-unknown
cargo build -p server
问题:
当我重建未更改的项目时,一些 wui 依赖项变得无效/重建,服务器也是如此。
任何一个:
它不再重建子项目。
这是货物错误吗? 我能做什么?
这可能不是货物错误。 这里可能发生的情况是您的 crates.io 依赖项(您没有提及它是什么,这可能很有用)根据目标架构具有不同的依赖项或功能。 因此,当您在构建 WASM 目标和主机目标之间交替时,正在重建内容。
也许在这种情况下停止使用 Cargo 工作区并分别构建服务器和 wui 会更好; 通过这种方式,您将为服务器和 wui 拥有单独的target
目录,这会占用一些额外的磁盘空间,并且非增量编译需要更长的时间,但会阻止您在构建两者时一直重建这些东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.