【问题标题】:Intellij finds .class files instead of .java filesIntellij 查找 .class 文件而不是 .java 文件
【发布时间】:2017-11-21 08:38:28
【问题描述】:

合并一些代码后,Intellij 使用.java 文件和.class 文件的混合构建我的项目。

当我在 Intellij (ctrl+shift+n) 中搜索时,intellij 也找不到一些 .java 文件。它只显示了这个文件的.class 文件。但我可以通过文件结构找到文件。

我已经重新导入了 pom 文件。我还删除了整个项目并再次从 bitbucket 中提取它,问题仍然存在。当我从另一台机器上拉项目时,我没有这个问题。

谢谢帮助

编辑:所以我发现了真正的问题。我得到了 3 个模块,但只有 2 个被标记为模块。而且我无法将模块标记为模块,因为我删除了一些必要的文件。

【问题讨论】:

  • 在新位置再次克隆。
  • 听起来很简单...谢谢您的帮助。也许是这样,因为我用快照导入了它......无论如何谢谢你的帮助!
  • 我的猜测是您的提交中有 IntelliJ 自己的文件,并且合并破坏了其中的一些文件。将“.idea/”和“*.iml”添加到您的 .gitignore 文件中

标签: java maven intellij-idea pom.xml


【解决方案1】:

如果在不同位置使用新克隆无法重现问题,则很可能是 InteliJs 项目文件已置于 git 控制之下,然后未能正确合并,从而巧妙地破坏了功能。

我会保存在这个目录中完成的所有工作,重新克隆,应用保存的工作,然后删除损坏的目录。然后我会确保将 .idea/*.iml 从 git 控制中删除,并在 .gitignore 中列出。

【讨论】:

    【解决方案2】:

    您可以转到项目结构-> 模块并在依赖项选项卡中添加文件的目录依赖项。之后会显示 .java 文件。

    【讨论】:

      【解决方案3】:

      当您的项目中的模块之间存在 Maven 依赖项时,可能会发生这种情况。

      特殊情况是当您在 Maven 中更新依赖项以指向发布版本时,例如1.0.1,但是您项目中依赖项的代码在其 pom.xml 中仍然有一个快照版本(例如 1.0-SNAPSHOT)。

      在这种情况下,IntelliJ 将从您的 Maven 存储库加载发布版本的 .class 文件,而不是从项目中的快照版本加载 .java 版本。

      【讨论】:

        【解决方案4】:

        我遇到了这个问题,因为从 GitHub 克隆的项目中的 'java''test' 文件夹没有标记为 'Source Root''Test Source Root'

        你可以:

        • 右键单击“java”或“test”文件夹
        • 点击“将目录标记为”
        • 选择正确的一个

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-24
          • 2018-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多