Cargo的子命令扩展功能支持通过添加新的可执行文件来扩展Cargo的命令集
Cargo的自定义命令扩展功能允许开发者通过创建特定命名的可执行文件来扩展Cargo的内置命令集。这些自定义命令可以执行任何任务,如构建工具、辅助脚本、或是与项目相关的任何操作,为Rust项目提供了极大的灵活性和扩展性。
Cargo自定义命令扩展功能的工作原理 基于命名约定:当使用者执行cargo something
时,Cargo会在PATH环境变量指定的目录中查找名为cargo-something
的可执行文件。如果找到,Cargo则会执行这个可执行文件,并将后续的命令行参数传递给它。
比如我想给cargo增加一个hello的扩展命令, 当执行cargo hello xxx
时, 输出你报 xxx,当前时间为 2024-03-01 20:16:18
创建一个可执行文件(不一定非要Rust开发,用其他语言如Go也也可以~),将其命名为cargo-hello
,并确保这个文件在系统PATH中。
package main
import (
"fmt"
"os"
"time"
)
func main() {
if len(os.Args) < 2 {
fmt.Println("请提供一个参数,例如:hello xxx")
return
}
name := os.Args[1]
currentTime := time.Now().Format(time.DateTime)
message := fmt.Sprintf("你好 %s,当前时间为 %s", name, currentTime)
fmt.Println(message)
}
通过 echo $PATH
,从输出的全部path路径中找一个目录cp进去即可
而后需要改名为cargo-hello
这样在运行cargo hello xxx
时,Cargo会从PATH路径来寻找一个名为cargo-hello
的可执行文件来执行。
需注意,为了让Cargo识别和执行自定义命令,可执行文件必须以cargo-
为前缀,并且位于系统的PATH路径中