下記の公式ドキュメントを参考にprotoファイルからボイラーテンプレートを自動生成しようとしましたが、オプションの意味が分かりづらく思ったようなディレクトリに作成されませんでした。
https://grpc.io/docs/languages/go/basics/#generating-client-and-server-code
結論から言うと以下です。
オプション | 意味 |
---|---|
--go_out= |
*.pb.go ファイルが作成される起点となるディレクトリ |
--go_opt=paths= |
source_relative を指定すると--go_out で指定した直下に *.pb.go`ファイルがさ生成される |
--go-grpc_out= |
*_grpc.pb.go ファイルが作成される起点となるディレクトリ |
--go-grpc_opt=paths= |
source_relative を指定すると--go-grpc_out で指定した直下に *_grpc.pb.go`ファイルがさ生成される |
--go_out
.
を指定するとprotoファイルと同ディレクトリをコードを生成する起点とします。
.
を指定せず,gen/api
などを指定すれば、コマンドを実行したパスから相対パスのディクレトリにすることも可能です。
--go_opt=paths
goの場合、protoファイルでoption go_package = "github.com/xxx/yyy";
のような指定をすると思いますが、その場合、それに対応したディクトリにコードが表示されてしまいます。
例えば、--go_out=gen/api
を指定した場合、自動生成されるコードのパスはgen/api/github.com/xxx/yyy
となってしまいます。
--go_opt=paths=source_relative
を指定すると、gen/api
のパスにコードが自動生成されるようにすることができます。
--go-grpc_out
、--go-grpc_opt=paths
についても同様です。