我正试图用here所描述的六边形架构来完成我的Go项目.
目录 struct :
|- grpc.proto
|-internal
|-core
|-domain
|-services
|- grpcprotocol
我的grpc.proto文件有go_包选项,指向go项目中的特定目录
syntax = "proto3";
option go_package = "github.com/myuser/myrepo/internal/core/services/grpcprotocol";
...
使用protoc --go_out=internal/core/domain --go_opt=paths=source_relative --go-grpc_out=internal/core/services/grpcprotocol --go-grpc_opt=paths=source_relative ports.proto
,我能够生成internal/core/domain目录下的grpc.pb.go文件和internal/core/services/grpcprotocol目录下的grpc_grpc.pb.go文件.
然而,grpc.pb.go有一个名为grpcprotocol
的go包,而它应该有一个名为domain
的包(我还使用在单独的go文件中定义的其他类型).
是否可以将这两个文件拆分为单独的Go包,并强制执行grpc_grpc.pb.go中的代码,以便从域目录导入类型,而不是按照同一个包中的定义来处理它们?