无法让 IntelliJ 识别 proto 编译的 Java 类文件
Posted
技术标签:
【中文标题】无法让 IntelliJ 识别 proto 编译的 Java 类文件【英文标题】:Unable to get IntelliJ to recognize proto compiled Java class files 【发布时间】:2015-05-05 18:03:04 【问题描述】:我们的项目中有一个 build.xml,但 IntelliJ 无法从中导入。我得到一个:
Cannot import anything from <path_to>/build.xml file.
在 Eclipse 上我可以:
File -> Import -> General -> Existing Projects into workspace.
并选择***文件夹。我在 IJ 也做了同样的事情。项目导入和索引很好,我可以搜索任何类。但是,它不能识别 protobuf 编译的类文件。我安装了 proto 插件,因此它的语法突出显示了我的 .proto 文件,但仍然没有意识到它需要引用一个已编译的类输出。我需要做一些特别的事情来让它识别这些文件吗?
【问题讨论】:
【参考方案1】:因为这几乎是我唯一能找到准确描述我在 Idea 中遇到的问题的地方,所以即使这是一个老问题,我也会回复。
事实证明,如果由 protocol buffers 编译器生成的 .java
文件大于 2.5MB(默认设置),Idea 会完全忽略它。即使有.class
文件,即使编译/制作成功,即使您使用 Maven 构建项目也可以。
要解决此问题,只需编辑您的 idea.properties
文件(它位于 Idea 安装文件夹中的 bin
文件夹内),然后注释掉此设置,或将其设置为大于生成的 .java
文件(就我而言,我将其设置为15000
,因为我生成的文件目前大小约为 8MB):
#---------------------------------------------------------------------
# Maximum file size (kilobytes) IDE should provide code assistance for.
# The larger file is the slower its editor works and higher overall system memory requirements are
# if code assistance is enabled. Remove this property or set to very large number if you need
# code assistance for any files available regardless their size.
#---------------------------------------------------------------------
idea.max.intellisense.filesize=2500
注意:至少在 Linux 上,默认更新策略似乎是“用刚刚下载的内容覆盖旧的 Idea 文件夹”,每次更新/升级后都必须应用此更改。
【讨论】:
也适用于我,但我仍然觉得该文档令人困惑。我不想想要在编辑器中打开文件,也不想得到代码帮助。恰恰相反,如果我碰巧在想法中意外打开文件,我想避免代码帮助,以免崩溃/阻止它。有没有办法独立于编辑器中的代码辅助限制来配置编译限制? 花了几个小时试图解决这个问题,非常感谢!【参考方案2】:米歇尔回答的扩展,
Mac 中没有 bin 文件夹。
在 macOS 中,当 Intellij 无法识别 proto 编译的 Java 类文件时,
从帮助菜单 ---> 选择编辑自定义属性。它可能会要求您在
下创建idea.properties
文件
$HOME//Library/Application\ Support/JetBrains/IdeaIC2020.1/
创建属性 idea.max.intellisense.filesize=2500 并设置该值以适应您的大型原始编译文件以供 IntelliJ 识别。
【讨论】:
macos中有bin
文件夹,在Application文件夹中点击idea,选择Show package content
以上是关于无法让 IntelliJ 识别 proto 编译的 Java 类文件的主要内容,如果未能解决你的问题,请参考以下文章