随着项目的增长壮大,代码被拆分到多个包里面,每个包都有自己的构建目录,target,每个包的构建都是独立的,这些独立的构建是多余浪费的,即使两个包依赖同一个库,构建的时候也不会共用。
你可以创建一个工作空间的Cargo.toml文件,里面包含包的集合,这样在构建的时候会共享共同的依赖库,共享一个Cargo.lock文件。
工作空间的Cargo.toml文件格式如下:
\[workspace\]
members = \["fern\_sim", "fern\_img", "fern\_video"\]
members里面成员是包的目录。这些目录里面的Cargo.lock和target目录应该删掉。
一旦你做了这样的改造,你在任意子工程目录运行cargo build会在根目录(工作空间Cargo.toml文件所在目录)生成共享的构建文件。在根目录运行cargo build --all会构建所有包。cargo test和cargo doc也支持--all选项。
