要在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命令来生成代码。