proto3->;go使用自定义扩展,从而导入go代码中的包(“google/protobuf”)

proto3->;go使用自定义扩展,从而导入go代码中的包(“google/protobuf”),go,protocol-buffers,Go,Protocol Buffers,我正在proto3上制作一个元模型的原型。以GoProto3扩展语法的形式生成特定于领域的样板文件是一种可笑的表达方式。我的域proto文件依赖于包含扩展名的meta.proto 我可以把这些东西编译出来。当包含meta.proto文件时,生成的go以以下包含块结束: import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" import google_protobuf "google/

我正在proto3上制作一个元模型的原型。以GoProto3扩展语法的形式生成特定于领域的样板文件是一种可笑的表达方式。我的域proto文件依赖于包含扩展名的
meta.proto

我可以把这些东西编译出来。当包含
meta.proto
文件时,生成的go以以下包含块结束:

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "google/protobuf" <--- this import does not exist !!
导入proto“github.com/golang/protobuf/proto” 导入fmt“fmt” 导入数学“数学”
导入google_protobuf“google/protobuf”穷人解决方案。不理想,将其引导至相关go导入工程:

sed -i '' -e 's/import google_protobuf \"google\/protobuf\"/import google_protobuf \"github.com\/golang\/protobuf\/protoc-gen-go\/descriptor\"/g' pkg/domain/proto/extensions/*.pb.go

在声明自定义选项时,必须使用“原始代码/>代码>描述符。这不仅仅是C++代码生成。不过,我对围棋一无所知。
sed -i '' -e 's/import google_protobuf \"google\/protobuf\"/import google_protobuf \"github.com\/golang\/protobuf\/protoc-gen-go\/descriptor\"/g' pkg/domain/proto/extensions/*.pb.go