尝试了四种办法,感觉第一个和第二个比较有效。
前提是要先安装了 proto 的idea插件。
1.修改idea配置文件编译大文件的限制
proto生成的源文件有数万行,源文件过大导致 idea 拒绝编译过大的源文件。
解决方案:
如果 protoc 生成的 class 文件找不到,说明 protoc 文件没有没有正确编译。 可以调整 IDEA 的默认参数, 然后重启 IntelliJ IDEA 使得 IDE 能够正确找到 protoc 生成的 Java 类。
idea.max.intellisense.filesize 的值默认为 2500, 单位是 kb,即默认最大的源码文件大约为 2.5M,前面的参数把这个值调整到接近 10M。
然后重启IDE
问题分析:
比如 apache ratis 项目中从 proto 文件生成的这个源码大小是 2504kb, 刚好超过 2500 kb。
具体步骤:
- 找到idea安装目录bin/idea.properties文件
idea.max.intellisense.filesize=10000 #默认2500
或者idea界面的菜单
Help-> Edit Custom Properties
增加下面的配置
idea.max.intellisense.filesize = 10000
重启IDE
2.编译代码问题
如果用maven依赖的方式编译译文件,才会引用到
如果是依靠maven来编译识别proto文件的,那么需要先把proto文件编译生成一些编译后的java文件,java文件中才会引用到这部分proto文件。
使用maven的 compile 命令进行编译
pom文件的配置
<properties>
<grpc.version>1.6.1</grpc.version>
<protobuf.version>3.3.0</protobuf.version>
</properties>
<dependencies>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf.version}</version>
</dependency>
</dependencies>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protobuf.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>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
3.将存放proto的文件 变成 source 目录
4.选择存放文件的目录
参考:
https://www.cnblogs.com/liugh/p/7505533.html
idea导入Protocol buffers编译的代码报错,无法导入_idea protobuf 报错-CSDN博客
IntelliJ IDEA 中找不到 protocol buffer 生成的 Java 类的解决方法_idea.max.intellisense.filesize-CSDN博客