エリックFinnman:
私がいるProtobufタイプを使用しようとしてきたgoogle.protobuf.Timestamp
とprotoc-jar-maven-plugin
しかこれらのコンパイル時にエラーが発生します:
google/protobuf/timestamp.proto: File not found.
test.proto: Import "google/protobuf/timestamp.proto" was not found or had errors.
test.proto:9:5: "google.protobuf.Timestamp" is not defined.
プロト・ファイルは、次のようになります。
syntax = "proto3";
import "google/protobuf/timestamp.proto";
package test;
option java_package = "test";
message TestTimestamp {
google.protobuf.Timestamp liveStartDate = 1;
}
そして、POMファイルには、以下の構成を有します。
<build>
<plugins>
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>3.6.0.1</version>
<executions>
<execution>
<id>protoc.main</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocVersion>3.6.0</protocVersion>
<addSources>main</addSources>
<includeDirectories>
<include>src/main/protobuf</include>
</includeDirectories>
<inputDirectories>
<include>src/main/protobuf</include>
</inputDirectories>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
私の知る限り理解して、このタイプはproto3の一部は、なぜ、私はこれらのエラーを取得するか、でしょうか?
エリックFinnman:
このタイプは、標準タイプのいずれかではないので、Mavenプラグインは、仕事に、このために、すなわち、追加の設定が必要であることが判明した<includeMavenTypes>direct</includeMavenTypes>
:そうのように、パラメータを
<build>
<plugins>
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>3.6.0.1</version>
<executions>
<execution>
<id>protoc.main</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocVersion>3.6.0</protocVersion>
<addSources>main</addSources>
<includeMavenTypes>direct</includeMavenTypes>
<includeDirectories>
<include>src/main/protobuf</include>
</includeDirectories>
<inputDirectories>
<include>src/main/protobuf</include>
</inputDirectories>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
この構成では、プロト・ファイルがコンパイルされます。