4

tl;dr以前は使用するように構成されていたリポジトリGOPATHが、モジュール用に構成されました。すべてが順調です。github.com/path/to/repo/protosしかし、protoc は正しく (!)構造内のリポジトリ内で定義された protobufs の Golang コードを生成しますGOPATH。私はこれを解決するために彼らを動かしています。より良い解決策はありますか?


GitHub リポジトリがあります。議論のために、それを と呼びましょうgithub.com/acme/toolbox。サブディレクトリには、以下を含む protobuf ファイルがあります。

package acme.toolbox.v1;
option go_package = "github.com/acme/toolbox/protos";

私がGOPATH'ing していたとき、すべてが順調で、protocGolang バインディングが生成され$GOPATH/src/github.com/acme/toolbox/protos、コードのimporting が機能しpb "github.com/acme/toolbox/protos"ました。

Go Modulesへの移行は簡単ではありませんでしたが、メリットはコストを上回り、自分自身とコードの将来性を保証しています。

protoc私の問題は、Golang バインディングを自分の任意のGOPATHクローンの外側に生成する方法がわからないことです。

ファイルが生成された後にファイルを移動していますが、これは... エレガントではありません:

cd ${TOOLBOX}
protoc \
--proto_path=./protos \
--go_out=plugins=grpc:/go/src
./protos/*.proto
mv ${GOPATH}/src/github.com/acme/toolbox/protos/*.go ${TOOLBOX}/protos

より良い解決策はありますか?

4

1 に答える 1