将单个共享目录用作所有项目的Cargo目标目录是否可以?

时间:2019-11-02 08:35:17

标签: rust rust-cargo

Cargo具有--target-dir标志,该标志指定用于存储临时或缓存的构建工件的目录。您也可以在~/.cargo/config文件中在用户范围内进行设置。我想将其设置为单个共享目录,以简化维护。

我看到一些工件目录在目标目录中带有一些唯一的(?)散列后缀,看起来很安全,但是最终产品没有后缀散列,这对于名称冲突似乎并不安全。我不确定,因为我不是货运专家。

我尝试将~/.cargo/config设置为

[build]
target-dir = "./.build"

我的初衷是使用项目的本地./.build目录,但是Cargo以某种方式将所有构建文件都放在~/.build目录中。我很好奇将所有项目中的所有构建文件放入一个共享的构建目录中会发生什么情况。

到目前为止,它已经在几个不同的项目上运行良好,但是为几个示例工作并不意味着它已被设计或保证可用于每种情况。

就我而言,我正在为用户所有工作区的所有项目使用单个共享的构建目录。不仅在工作区中投影。从字面上看,用户的每个工作区中的每个项目。据我所知,Cargo旨在与本地target目录一起使用。如果旨在仅使用本地目录,则共享的构建目录可能会引起一些问题。

  • 铁锈/货物1.38.0。

1 个答案:

答案 0 :(得分:0)

是的,这样做是为了安全。

我同意以下评论:可能有更好的方法可以实现您的目标。 Workspaces是一小组箱子的简单解决方案,而sccache是更原则的缓存机制。

另请参阅: