当前位置: 首页 > 知识库问答 >
问题:

协议错误验证程序。proto:找不到文件

龙德义
2023-03-14

我正在得到。在下面的命令中找不到proto File错误

protoc -I/usr/local/include -I. \
        -I/home/xxUserxx/go/pkg/mod/github.com/mwitkow/go-proto-validators@v0.3.0/ \
        -I/home/xxUserxx/go/src \
        -I/home/xxUserxx/go/pkg/mod/github.com/xxOrgxx/xxPrivateRepoxx@v1.2.2/proto \
        -I/home/xxUserxx/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.9.2/third_party/googleapis \
        --grpc-gateway_out=logtostderr=true,allow_repeated_fields_in_body=true:./proto \
        --swagger_out=logtostderr=true,allow_repeated_fields_in_body=true:./proto \
        --govalidators_out=./proto --go_out=plugins=grpc:./proto \
        test1.proto test2.proto

输出:以下错误是protoc失败。

github.com/mwitkow/go-proto-validators/validator.proto: File not found.
test1.proto:7:1: Import "github.com/mwitkow/go-proto-validators/validator.proto" was not found or had errors.

Edit1:下面是test1.proto文件。这里第7行有validator.proto导入

syntax = "proto3";

package proto;
option go_package = "proto";

import "google/api/annotations.proto";
import "github.com/mwitkow/go-proto-validators/validator.proto";

service TestService {
    rpc GetTests(GetTestsRequest) returns (GetTestsResponse) {
    option (google.api.http) = {
      get: "/test"
    };
  } 
}

message GetTestsRequest {
}

message GetTestsResponse {
    repeated Test tests = 1;
}

message Test {
  int64 id = 1;
  string name = 2;
  string description = 3;
  int64 externalId = 4;
  int64 providerId = 5;
  bool isArchived = 6;
}

共有1个答案

郎磊
2023-03-14

正如这条评论所建议的,使用您的proto项目和您试图引用的项目之间共享的顶级源目录。

这是另一个例子。

 类似资料:
  • 我是protobuf的新手。遵循官方教程https://developers.google.com/protocol-buffers/docs/gotutorial,我下载了最新版本,并尝试运行示例 下的src,以便所需的包和。proto和proto位于同一目录下(由-I=src指定)。 然而,我想知道,如果有一个解决方案时。proto文件和其他要导入的包位于不同的目录下。

  • 问题内容: 我提出了一个错误: 我想在网上阅读HTML文件 问题答案: 您的URI不是URI。没有协议组件。它需要http://或您打算使用的其他协议。

  • <代码>协议--gogofaster\u out=。形象协议 我收到此错误消息 /主页/abc/src/github。com/gogo/protobuf/gogoproto/gogo。proto:找不到文件。 形象proto:Import“/主页/abc/src/github.com/gogo/protobuf/gogoproto/gogo.proto”未找到或有错误。 文件肯定在那里。我可以从错

  • 我已经在Ubuntu11.10x64上通过源代码编译安装了最新的node.js(0.8.15)。

  • 我的原始文件使用默认的谷歌协议缓冲区类型,如结构和时间戳。 使用默认的gradle协议集成,gradle输出错误,因为它无法解决导入: google/protobuf/struct。proto:找不到文件。 google/protobuf/timestamp。proto:找不到文件。 替换默认的gradle协议块 其中一个指定protoc的位置 修复了该问题,但它不可移植。 是否有任何jar依赖项

  • 我一直在尝试运行以下命令 获取以下错误 github。com/x/customValidation/validators。proto:找不到文件。test\u服务器/测试。proto:5:1:Import“github.com/x/customValidation/validators.proto”未找到或有错误。 我可以看到原始文件在这个位置- 我还尝试了使用--proto\u path命令,但