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

maven和java:如何从测试目录中的协议文件生成代码?

孙恩
2023-03-14

我的问题与这个问题非常相似,只是针对maven和java。

我正在测试grpc,想把它变成一个简单的helloworld。proto位于test/proto文件夹中。

但是,该文件不会生成java文件(与/src/main/proto中的proto文件不同)。

所以我的问题是如何在测试文件夹中为proto生成代码?

共有1个答案

漆雕疏珂
2023-03-14

首先,按照文档使用组织。xolstice。专家插件protobuf maven插件。

或者,您可以复制pom.xml示例(这是固定在v1.19.0版本上的;考虑使用任何最新的标签)。helloworld示例中使用了这个pom。

然后为protobuf maven插件添加测试编译测试编译自定义目标。这将导致生成src/test/proto中的文件。

      <plugin>
        <groupId>org.xolstice.maven.plugins</groupId>
        <artifactId>protobuf-maven-plugin</artifactId>
        <version>0.5.1</version>
        <configuration>
          <protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>
          <pluginId>grpc-java</pluginId>
          <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>compile-custom</goal>
              <goal>test-compile</goal>
              <goal>test-compile-custom</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
 类似资料:
  • 我想从测试目录中的协议文件生成代码。 这行不通。 看起来scalapb只为main/protobuf目录中的proto生成文件。

  • 继续我的问题,我注意到仍然有一些文件没有创建。未创建的文件是为服务创建的。这些信息被完美地创造出来。 一个快速的例子来重现我的问题:克隆例如这个github回购。 所以我想知道,当proto文件被移动到test文件夹时,如何为服务创建java文件。

  • 使用Spring boot和mockmvc,我有以下方法的测试类: 以及以下测试方法: 但是对于前端(反应)测试,我需要生成Pact.io合约,它是独立于框架的。 问题 那么,我的问题是是否可以同时生成spring rest文档和pact。使用单一测试方法的io pact? 我的研究发现,到目前为止,Pact是使用自己的rest生成器从带注释的方法生成的<此外,我发现了以下对话:https://g

  • 在阅读的API时,我错过了很多函数。首先,它建议使用for循环从stream转到。而且我忽略了一个事实,即不是。 如何在Java8中从生成?

  • 更新: 我在pom.xml中添加了另一个插件。 它生成一个jar文件,但似乎没有依赖项。 线程“main”java.lang.noClassDefFoundError中出现异常:org/apache/log4j/logger

  • 我做了一个简单的项目,其中包含一些测试,我希望能够在其他计算机上启动测试。我使用runas构建了这个项目- 错误:在com类中找不到Main方法。实例TestPurchase,请将main方法定义为:publicstaticvoidmain(String[]args)或JavaFX应用程序类必须扩展JavaFX。应用应用 据我所知,TestNG不需要任何主方法,因为有注释。这就引出了一些问题: 我