首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >proto3 ->与自定义扩展一起使用,从而在go代码中导入包(“google/->”)

proto3 ->与自定义扩展一起使用,从而在go代码中导入包(“google/->”)
EN

Stack Overflow用户
提问于 2017-01-22 15:15:24
回答 1查看 985关注 0票数 2

我正在proto3上建立一个元模型的原型。要生成作为go proto3扩展语法的特定领域模板,语法表现得很可笑。我的域proto文件依赖于包含扩展名的meta.proto

我可以编译这些去。当包含meta.proto文件时,生成的go以下面的包含块结束:

代码语言:javascript
复制
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "google/protobuf" <--- this import does not exist !!

我的扩展名文件具有以下结构(基于这个):

代码语言:javascript
复制
syntax = "proto2";
package "...";

option go_package = "..."; 

import "google/protobuf/descriptor.proto"; <--- this causes the import

// message MyExtensionClass ...
// message MyExtensionField ...

extend google.protobuf.MessageOptions {
    optional MyExtensionClass class = 50000;
}

extend google.protobuf.FieldOptions {
    optional MyExtensionField field = 50001;
}

我知道解决方案可能非常简单,google/protobuf包含是为C++生成而设计的。

在我的工作区中,包含的包应该是"github.com/golang/protobuf/protoc-gen-go/descriptor"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-23 12:10:59

可怜人的解决方案。不理想,将其指向相关的go导入工作:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41792591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档