无法让 IntelliJ 识别 proto 编译的 Java class 文件
Unable to get IntelliJ to recognize proto compiled Java class files
我们的项目中有一个 build.xml,但 IntelliJ 无法从中导入。我得到一个:
Cannot import anything from <path_to>/build.xml file.
在 Eclipse 上我可以做一个:
File -> Import -> General -> Existing Projects into workspace.
并选择顶级文件夹。我在 IJ 做了同样的事情。项目导入和索引很好,我可以搜索任何 class。但是,它不识别 protobuf 编译的 class 文件。我安装了 proto 插件,所以它的语法突出了我的 .proto 文件,但仍然没有意识到它需要引用一个编译的 class 输出。我需要做一些特殊的事情来让它识别这些文件吗?
因为这几乎是我能找到关于我在 Idea 中遇到的问题的确切 描述的唯一地方,即使这是一个老问题,我也会回复。
事实证明,如果协议缓冲区编译器生成的 .java
文件大于 2.5MB(默认设置),Idea 会完全忽略它。即使有 .class
文件,即使 compile/make 成功,即使您使用 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 上,默认更新策略似乎是 "overwrite the old Idea folder with what you just downloaded",必须在每 [=31] 之后应用此更改=].
Michele 回答的扩展,
Mac 中没有 bin 文件夹。
在 macOS 中,当 Intellij 无法识别 proto 编译的 Java class 文件时,
从“帮助”菜单 ---> select 编辑自定义属性。它可能会要求您在
下创建 idea.properties
文件
$HOME//Library/Application\ Support/JetBrains/IdeaIC2020.1/
创建 属性 idea.max.intellisense.filesize=2500 并设置该值以容纳 IntelliJ 识别的大型 fat proto 编译文件。
我们的项目中有一个 build.xml,但 IntelliJ 无法从中导入。我得到一个:
Cannot import anything from <path_to>/build.xml file.
在 Eclipse 上我可以做一个:
File -> Import -> General -> Existing Projects into workspace.
并选择顶级文件夹。我在 IJ 做了同样的事情。项目导入和索引很好,我可以搜索任何 class。但是,它不识别 protobuf 编译的 class 文件。我安装了 proto 插件,所以它的语法突出了我的 .proto 文件,但仍然没有意识到它需要引用一个编译的 class 输出。我需要做一些特殊的事情来让它识别这些文件吗?
因为这几乎是我能找到关于我在 Idea 中遇到的问题的确切 描述的唯一地方,即使这是一个老问题,我也会回复。
事实证明,如果协议缓冲区编译器生成的 .java
文件大于 2.5MB(默认设置),Idea 会完全忽略它。即使有 .class
文件,即使 compile/make 成功,即使您使用 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 上,默认更新策略似乎是 "overwrite the old Idea folder with what you just downloaded",必须在每 [=31] 之后应用此更改=].
Michele 回答的扩展,
Mac 中没有 bin 文件夹。
在 macOS 中,当 Intellij 无法识别 proto 编译的 Java class 文件时,
从“帮助”菜单 ---> select 编辑自定义属性。它可能会要求您在
下创建idea.properties
文件
$HOME//Library/Application\ Support/JetBrains/IdeaIC2020.1/
创建 属性 idea.max.intellisense.filesize=2500 并设置该值以容纳 IntelliJ 识别的大型 fat proto 编译文件。