Intellij IDEA Java类不会在保存时自动编译

问题

昨天我从Eclipse切换到Intellij。

我也在使用jRebel和Websphere Server 7。

现在一切似乎都工作得有点好,除了**,当我修改a Java文件,而命中保存时,Intellij没有**re-compile文件,以便jRebel获取它。

日食"Build Automatically"功能解决了这个问题。

在Intellij中,我必须点击CTRL SHIFT 9重新编译jRebel的相关类才能获取它。如果在75724414两个文件之间进行了更改,我在以及其中一个上有72893904这样做,因为Intellij使用了save all机制,所以很难知道手动重新编译的内容,我也不感兴趣。

难道没有办法使Intellij to在自己的上做到这一点?


#1 热门回答(171 赞)

更新
对于IDEA 12版本,如果我们使用外部编译器选项,我们可以自动构建已编辑的源代码。唯一需要的是检查位于Compiler Settings.
Compiler Settings
下的"自动构建项目"选项,如果你想进行热部署,在应用程序运行时或者如果你使用的是spring boot devtools,你也应该从注册表启用compiler.automake.allow.when.app.running。这将自动编译你的更改。

使用ctrl shift A(或者shift shift Aon mac)typeRegistryonce注册表窗口打开,找到并启用compiler.automake.allow.when.app.running,请看这里:
enter image description here

对于12以上的版本,你可以使用EclipseMode插件使IDEA自动编译保存的文件。有关从Eclipse迁移时的更多提示,请参阅:https://www.jetbrains.com/help/idea/2016.3/eclipse.html


#2 热门回答(69 赞)

请遵循以下两个步骤:

1 - 从编译器启用Automake

  • 按:ctrl shift A(对于Mac⌘转换A)
  • 输入:自动生成项目
  • 点击:输入
  • 启用"自动生成项目"功能

2 - 在应用程序运行时启用Automake

  • 按:ctrl shift A(对于Mac⌘转换A)
  • 类型:注册表
  • 找到关键的compiler.automake.allow.when.app.running并启用它或单击它旁边的复选框

注意:立即重启你的应用程序:)

注意:这也应该允许使用spring boot devtools进行实时重新加载。


#3 热门回答(64 赞)

警告

Eclipse模式plug-in已过时,与最近的IDEA 12版本不兼容。如果你安装它,IDE将挂起每个文件更改并将响应非常慢。

IntelliJ IDEA不使用自动构建,它可以动态检测错误,而不是通过编译器。与Eclipse模式类似,将在IDEA 12中提供:

Make project automatically

使用Build,它调用增量make进程,该进程只编译已更改的和依赖的文件(速度非常快)。

还有一个FAQ entry可能有所帮助。

自动make功能更新:运行/ debug配置运行时,Make project automatically无效。磁盘上的类仅更改为onBuild | Make。这是核心设计决策,因为在我们看来,磁盘上的类更改应该始终在用户的控制之下。自动make不是Eclipse功能的模板,它的工作方式不同,它的主要目的是节省等待类真正需要时(在运行应用程序或测试之前)的时间。自动make不会替换你仍需要触发的显式编译,就像在本问题中描述的情况一样。如果你正在寻找不同的行为,那么在上面的FAQ中链接的EclipseMode插件将是更好的选择。