go version
: go version go1.14 linux/AMD64
go.mod
module [redacted]
go 1.14
require (
github.com/golang/protobuf v1.4.0-rc.2
google.golang.org/grpc v1.27.1
google.golang.org/protobuf v1.20.0 // indirect
)
Ich führe den folgenden Befehl aus:
protoc -I ./src/pbdefs/protos/ --go-grpc_out=. src/pbdefs/protos/*.proto
um meine GRPC-Ausgabedateien aus .proto
Dateien, bei denen eine Fehlermeldung angezeigt wird
protoc-gen-go-grpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
das fehlende Plugin wurde unter https://github.com/grpc/grpc-go implementiert.
befehl unten sollte es beheben
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
Der Golang Protobuf hat eine neue Version der Go-Protokollpuffer veröffentlicht, die sie als APIv2 bezeichnen.
Da APIv2 nicht abwärtskompatibel mit APIv1 ist, müssen wir unseren gesamten Golang-Code für die neue API anpassen.
Sie können mehr über die neue API erfahren hier und hier
Migrationsschritte:
Um die neue Codegenerierung ausführen zu können, müssen die folgenden gRPC-Plugins installiert werden:
go get -u google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
Verwenden Sie dann den folgenden Befehl, um den Code zu generieren.
# generate the messages
protoc --go_out="$GO_GEN_PATH" -I "$dependecies" "$proto"
# generate the services
protoc --go-grpc_out="$GO_GEN_PATH" -I "$dependecies" "$proto"