有没有办法重新命名一个Cargo项目?

22
我使用以下命令创建了一个项目:cargo new projectname --bin。如何将projectname更改为其他名称?
我查看了手册页面Cargo文档,并运行了以下命令:
  • cargo help
  • cargo --list
  • man cargo
在元数据文件(Cargo.toml、Cargo.lock等)中,有“name”和“path”。我想手动更改它们,但我不知道是否会出现问题。最佳方法是什么?
2个回答

20

我认为你应该手动更改它。实际上并不难。

我运行了这段代码:

$ cargo new smurf --bin
     Created binary (application) `smurf` project
$ cd smurf/
smurf$ cargo build
     ....
smurf$ grep -rl smurf .
./target/debug/smurf.d
./target/debug/smurf
./target/debug/.fingerprint/smurf-35f069edf7faaa12/bin-smurf-35f069edf7faaa12.json
./target/debug/.fingerprint/smurf-35f069edf7faaa12/dep-bin-smurf-35f069edf7faaa12
./target/debug/deps/smurf-35f069edf7faaa12
./Cargo.lock
./Cargo.toml

从所有这些文件中,整个target可能只需要删除。 .lock文件也可以删除。至于Cargo.toml...嗯,你可以进行编辑。

我尝试只更改Cargo.toml,一切正常工作。但是在target中会留下无用的文件,所以我建议无论如何都要删除它们。


1
太好了!看起来相当简单,我想在Cargo团队本地实现之前,这将是必须的。 - David Sainez
3
cargo clean 命令将会删除整个目标文件夹。详情请见:https://doc.rust-lang.org/cargo/commands/cargo-clean.html - AAAfarmclub

5

在Linux系统中,这非常直接:

  • 进入项目所在的目录,例如如果您的项目名为hello_world,并位于rust文件夹中,则进入rust文件夹: pi@raspberrypi:~/workspace/rust/hello_world $ cd ..
  • 从那里,您可以通过以下方式重命名项目:
    1. mv [当前的项目名称] [您想要的名称] 来移动。例如,如果我想将其从hello_world重命名为hello_rust,我会键入 mv hello_world/ hello_rust/ 以重命名文件夹。
    2. 现在您只需更改Cargo.toml文件中的名称即可:
      • pi@raspberrypi:~/workspace/rust $ cd hello_rust/
      • pi@raspberrypi:~/workspace/rust/hello_rust $ geany Cargo.toml
      • (我使用geany,但您可以使用任何喜欢的文本编辑器)
      • 在Cargo.toml文件的第二行进行更改。
      • name = "hello_world" 更改为 name = "hello_rust"

希望这能帮助未来有需要的人。


简而言之 - 只需复制原始包,打开复制的目录并在Cargo.toml文件中更改“name”,但请确保新名称与新目录的名称匹配。 - Benji

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接