首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的protoc不生成gprc服务存根?

为什么我的protoc不生成gprc服务存根?
EN

Stack Overflow用户
提问于 2022-02-23 21:40:05
回答 1查看 393关注 0票数 2

我要把grpc拉进我的春季启动项目。我加入了这种依赖:

代码语言:javascript
复制
<dependency>
   <groupId>io.github.lognet</groupId>
   <artifactId>grpc-spring-boot-starter</artifactId>      
   <version>4.5.8</version>
</dependency>

以下是我的plugins部分:

代码语言:javascript
复制
<extensions>
    <extension>
        <groupId>kr.motd.maven</groupId>
        <artifactId>os-maven-plugin</artifactId>
        <version>1.6.2</version>
    </extension>
</extensions>
<plugins>
    <plugin>
        <groupId>org.xolstice.maven.plugins</groupId>
        <artifactId>protobuf-maven-plugin</artifactId>
        <version>0.6.1</version>
        <configuration>
            <protocArtifact>com.google.protobuf:protoc:3.17.2:exe:${os.detected.classifier}</protocArtifact>
            <pluginId>grpc-java</pluginId>
            <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.39.0:exe:${os.detected.classifier}</pluginArtifact>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>compile</goal>
                    <goal>compile-custom</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>

这是我的原型文件:

代码语言:javascript
复制
syntax = "proto3";

option java_package = "com.aeonai.proto";

service OrderService {
  rpc ExecuteOrder(OrderRequest) returns (OrderResponse) {};
}

message OrderRequest {
  string email = 1;
  string product = 2;
  int32 amount = 3;
}

message OrderResponse {
  string info = 1;
}

当我运行mvn clean install时,我得到了除OrderService之外的所有java类。创建服务还需要发生什么?

EN

回答 1

Stack Overflow用户

发布于 2022-03-16 00:12:44

我破解了这个问题,并能够生成OrderService存根类。我所做的是:

  1. start.spring.io上创建一个新的Spring应用程序
  2. 使用问题中的确切XML片段更新pom.xml。
  3. 将proto定义添加到src/main/proto/demo.proto
  4. 运行./mvnw清洁安装

我在目标值/classes/com/aeonai/proto下得到的是以下文件:

代码语言:javascript
复制
Demo$OrderRequest$1.class
Demo$OrderRequest$Builder.class
Demo$OrderRequest.class
Demo$OrderRequestOrBuilder.class
Demo$OrderResponse$1.class
Demo$OrderResponse$Builder.class
Demo$OrderResponse.class
Demo$OrderResponseOrBuilder.class
Demo.class
OrderServiceGrpc$1.class
OrderServiceGrpc$2.class
OrderServiceGrpc$3.class
OrderServiceGrpc$MethodHandlers.class
OrderServiceGrpc$OrderServiceBaseDescriptorSupplier.class
OrderServiceGrpc$OrderServiceBlockingStub.class
OrderServiceGrpc$OrderServiceFileDescriptorSupplier.class
OrderServiceGrpc$OrderServiceFutureStub.class
OrderServiceGrpc$OrderServiceImplBase.class
OrderServiceGrpc$OrderServiceMethodDescriptorSupplier.class
OrderServiceGrpc$OrderServiceStub.class
OrderServiceGrpc.class

OrderService类在那里,但请注意,它们不是"Demo“类的内部类。在不知道您的确切项目设置的情况下,我不知道如何进一步帮助您,但是您可以尝试我所执行的步骤,看看您是否得到了服务类。如果您这样做了,看看您的实际项目设置的增量是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71244353

复制
相关文章

相似问题

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