Pau*_*eau 3 java intellij-idea protocol-buffers proto
我正在尝试从 IntelliJ IDEA 中的 java 文件导入 proto 文件。
我有一个名为 A.proto 的文件和一个名为 B.java 的文件。Info我尝试从 B.java 文件中的 A.proto 文件导入一个类,如下所示:
import A.Info;
Run Code Online (Sandbox Code Playgroud)
但是,IntelliJ IDEA 不支持 proto 文件,并表示我的类不存在。我安装了两个插件Protobuf Support和Protocol Buffer Editor. 但它仍然不起作用。任何想法?
IntelliJ 可以识别协议缓冲区文件,但它们不是 Java,因此 Java 编译器不知道如何处理它们。
您可以将这些协议缓冲区编译为 Java 文件,这是您当前缺少的步骤。我知道的最好方法是使用 Maven 插件来执行此操作。
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>3.11.4</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocVersion>3.0.0</protocVersion> <!-- 2.4.1, 2.5.0, 2.6.1, 3.0.0 -->
<includeDirectories>
<include>src/main/resources/protobuf</include>
</includeDirectories>
<inputDirectories>
<include>src/main/resources/protobuf/</include>
</inputDirectories>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
以及 Protocol Buffer 类的依赖项:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.11.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
使用此插件,Intellij 将在最初创建源之后找到创建的 Java 类。这样,只有您的 Protocol Buffer 文件需要位于源代码管理中。您让插件负责 Java 的编译。
创建 Java 类后,您可以在其余代码中使用它们。您甚至可以在Maven 项目的target/ generated-sources 文件夹中查看生成的 Java 类。
以下是 Protocol Buffers 和 Java 之间的映射:
DistanceWalked.proto
package example;
message DistanceWalked {
string userId = 1;
double distance = 2;
}
Run Code Online (Sandbox Code Playgroud)
DistanceWalkedOuterClass.DistanceWalked.java(生成)
package example;
public class DistanceWalked {
//properties This class isn't pretty...
}
Run Code Online (Sandbox Code Playgroud)
(带有协议缓冲区和 Maven 插件的完整代码示例可以在这里找到: https: //github.com/TomCools/protocol-buffers-example)
插件源链接:https://github.com/os72/protoc-jar-maven-plugin
如果没有Maven,则必须下载命令行编译器。有关该内容的文档可以在这里找到: https: //developers.google.com/protocol-buffers/docs/javatutorial#compiling-your-protocol-buffers
| 归档时间: |
|
| 查看次数: |
6961 次 |
| 最近记录: |