要在protobuf文件中保留//go:generate
注释,可以按照以下步骤进行操作:
generate.go
的Go文件,用于执行go generate
命令。在该文件中,使用os/exec
包来执行命令。package main
import (
"os"
"os/exec"
)
func main() {
cmd := exec.Command("go", "generate")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Run()
}
//go:generate
注释,指定要执行的命令。例如,假设要通过protoc
生成Go代码,可以使用以下注释://go:generate protoc --go_out=. myproto.proto
syntax = "proto3";
message MyMessage {
// ...
}
generate.go
文件:go run generate.go
这将执行go generate
命令,并根据protobuf文件中的//go:generate
注释生成相应的Go代码。
注意://go:generate
注释只会在运行go generate
命令时才会被执行。因此,在每次对protobuf文件进行更改后,都需要重新运行go run generate.go
命令来生成代码。