idea的java代码引用proto文件报错
尝试了四种办法,感觉第一个和第二个比较有效。
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文件的配置
1.6.1
3.3.0
io.grpc
grpc-netty
${grpc.version}
provided
io.grpc
grpc-protobuf
${grpc.version}
provided
io.grpc
grpc-stub
${grpc.version}
provided
com.google.protobuf
protobuf-java
${protobuf.version}
kr.motd.maven
os-maven-plugin
1.5.0.Final
org.xolstice.maven.plugins
protobuf-maven-plugin
0.5.0
com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
grpc-java
io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
compile
compile-custom
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博客