尝试了四种办法,感觉第一个和第二个比较有效。
前提是要先安装了 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博客