【问题标题】:IntelliJ only compiles files onceIntelliJ 只编译一次文件
【发布时间】:2018-06-11 09:01:11
【问题描述】:

IntelliJ(Ultimate 2018.1)没有正确构建我的项目。该项目使用的 Maven 似乎没有任何问题(所有库都在那里)。问题如下:

每次启动 IntelliJ 时,我都能够一次准确地构建所有更改。我可以更改文件的内容,这些更改将包含在构建中。但是我在第一次构建之后所做的每一个更改都会被构建工具忽略。因此,之后每次我构建项目(ctrl+f9)时,我都会得到“所有文件都是最新的”并且没有编译任何内容。 (如果我在应用程序服务器上运行应用程序并尝试热插拔,构建会显示“加载的类是最新的......”)

只有重新启动 IDE 才能重建项目。

编辑: 正如我刚刚发现的那样,重新启动 IDE 并不是让构建再次成为可能的唯一可能性。在无法编译的状态下,我更改了编译器设置中的一个设置。在那之后,我能够再次构建。但只有一次。然后我将设置改回来,我可以再次构建。在 IDE 中看起来有些奇怪。 /编辑

Edit2: 奇怪的是,类的显式编译 (ctrl+shift+f9) 正在工作。所以问题围绕着整个项目的编译。虽然这使 IntelliJ 再次可用,但对于多个更改的文件很容易出错... /Edit2

项目的一些注意事项和配置:

  • 构建生成一个 .war
  • 它部署在 wildfly 上(在此循环中未启动一次,因此这不应该是问题的根源)
  • 完全相同的项目以前是在 Eclipse 中开发的,其中构建和热插拔工作完美无缺(当我再次尝试 Eclipse 时仍然如此)
  • Maven 配置:
  • 编译器配置:

【问题讨论】:

  • 按 CTRL + SHIFT + A 并搜索“重建时清除输出目录”。检查了吗?
  • @Michael 最初已检查。请查看我在问题中的编辑。我打开和关闭的正是这个选项。
  • 你可以试试:项目设置 > 工件 > 勾选“包含在项目构建中”
  • @Michael 该选项已被勾选(最初不是,但我也尝试过)。不幸的是,这没有任何改变
  • 我再次编辑了帖子,来自 IDE 的更多奇怪行为...

标签: java maven intellij-idea


【解决方案1】:

检查 Intellij 版本。因为我使用的是 1.4 社区版并且对我来说它运行正常。

即使我在第一次构建后更新了一些依赖项,它也会自动重建。 因此,根据我的理解,您只需检查 Intellij 更新或更改默认目录并重建它即可。

【讨论】:

  • 我正在使用上周星期四的最新 IntelliJ 版本
【解决方案2】:

“Build Project”命令的问题在于 IntelliJ 的源代码发现。很久以前,我们选择将源代码放在名为“.git”的文件夹中(而不是存储库中的文件夹),因此 IntelliJ 在发现该目录中的代码时遇到了问题。其原因是 Eclipse 将存储库克隆到 .git 文件夹中的一种旧方法。该目录如下所示: C:\dev\.git\workspace 并且在该文件夹内是另一个 .git 文件夹(来自存储库)。 所以,答案是:

不要将你的 git 存储库放在名为“.git”的文件夹中,否则 IntelliJ 不会编译它(除非你只编译类)。

【讨论】:

  • 我已经在 2018.1.5 和 dev.git 文件夹中的 Maven 项目中尝试过 - 没有遇到此类问题。 “发现源代码”的问题是什么意思?
  • 该文件夹刚刚命名为“.git”(就像 git 存储库中隐藏的一样)。所以我猜 IntelliJ 假设该文件夹中的所有文件都可以被忽略。我编辑了我的答案,因为它格式错误(错误的目录)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多