oil*_*lio 12 intellij-idea antlr4
我无法让Intellij识别antlr4生成的源代码.对生成的代码的任何引用都显示为错误,代码完成不起作用等.
我正在使用maven和antlr4-maven-plugin来生成代码.我的代码,引用生成的代码编译并在maven下构建良好.生成的代码位于/ target/generated-sources/antlr4下,这正是Intellij所期望的.
我已经尝试过常用的修复程序,例如重新导入maven项目,更新文件夹,使缓存无效等等.似乎没有任何工作.
有人见过这个吗?有没有办法直接在Intellij中指向生成的源?
Vla*_*čík 13
target/generated-sources/antlr4不会自动标记为源目录,而是直接子目录com.example.Intellij Idea无法检测到内部类的正确包target/generated-sources/antlr4/com.example.
源文件*.g4在src/main/antlr4/com.example,但它实际上应该是src/main/antlr4/com/example.请注意/.你可能忘了src/main/antlr4在Idea中标记为源目录,当你认为你正在创建包结构时,你实际上只是创建了一个名为dir的dir com.example.
标记src/main/antlr4为源目录,创建正确的目录结构src/main/antlr4/com/example.重建.
转到项目结构 - 模块 - 源文件夹,然后找到target/generated-sources/antlr4/com.example- 单击编辑属性并将包前缀设置为com.example.
这里有不同但相关的问题
我的问题有点类似于@spilymp\'s:
\n\n我*.g4直接将文件放入src/main/antlr4:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main/\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 antlr/\n| | \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Main.g4\n| | \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 imported.g4\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 com/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Test.java\nRun Code Online (Sandbox Code Playgroud)\n\n这导致在default包中生成源代码。我更改了包结构以匹配 java 的包结构:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main/\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 antlr/\n| | \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 com/\n| | | \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test/\n| | | \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Main.g4 \n| | \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 imports/\n| | \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 imported.g4\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 com/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test/\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Test.java\nRun Code Online (Sandbox Code Playgroud)\n\n(注意导入需要直接进入src/main/antlr4/imports)
之后,我只需antlr4从 Maven 菜单([Module] > Plugins > antlr4 > antlr4:antlr4)运行目标,它会在默认位置 ( target/generated-sources/antlr4) 生成源,其中 Intellij 已经用蓝色生成源图标标记了源,MainParser现在可以导入了!
小智 4
我有我认为可能是类似的问题。我是 IntelliJ 的新手,所以我在某种程度上猜测。
您的项目中的 gen 文件夹是棕色(即资源)还是蓝色(源代码)?
在我设法将 gen 文件夹注册为包含源代码的文件夹之前,我无法让我的项目识别生成的代码。
抱歉,您可能需要摆弄它 - 我不记得我是如何做到的 - 但在我更改此设置后一切都很好。
| 归档时间: |
|
| 查看次数: |
7025 次 |
| 最近记录: |