Maven和Java:如何从测试目录中的protobuf文件生成代码?

时间:2019-04-04 18:45:49

标签: java maven protocol-buffers grpc grpc-java

我的问题与此question非常相似,但对于maven和Java。

我正在测试grpc,并且想要放入test / proto文件夹中的简单helloworld.proto。

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

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

1 个答案:

答案 0 :(得分:1)

首先,按照documentation使用org.xolstice.maven.plugins protobuf-maven-plugin。

或者,您可以复制example pom.xml(已固定在v1.19.0版本中;请考虑使用最新的标记)。 helloworld示例使用了此pom。

然后为protobuf-maven-plugin添加test-compiletest-compile-custom目标。这将导致生成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>