一、场景:
1、实际项目开发、调试阶段,重新打包部署影响效率,热部署、热加载可以提高效率;
2、IDEA在running/debugging状态下没有自动编译的选项;
二、Jetty的maven插件:
<!-- jetty插件 -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.5</version>
<configuration>
<scanIntervalSeconds>2</scanIntervalSeconds><!-- 多少秒进行一次热部署,设置为0不会热加载 -->
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8099</port>
</connector>
</connectors>
<contextPath>/lalalala</contextPath>
</configuration>
</plugin>
三、IDEA在debug状态下,进行热加载。
1、IDEA不支持在运行时自动进行重新编译,需要手动触发;
2、[Main menu]->[Build]->[Recompile ...]/[Build Project],重新编译单独的类/重新编译项目,有对应的快捷键设置command+上档键+F9/command+F9。
3、但是如果我们不想按这么复杂的按键,如果只是想保存文件的时候自动编译呢,目前只能通过录制宏的方案解决。
四、宏录制(转载其他博客)
下面是我的操作流程:
首先点击菜单开始录制宏
点击之后这时会在右下角出现一个绿色的小框框和状态条
这时我们就可以开始录制啦,先按下快捷键 ctrl+s 然后按下快捷键 ctrl+F9
2个操作做完之后我们可以停止录制保存宏啦,你既可以点击右下角的红色按钮 也可以回到菜单点击 stop Macro Recording
停止录制之后我们要给他一个名称,让他保存到配置里面去
就像这样,我给的是 auto make,或者 可以是 save and make 这样符合我们的操作一点
点击OK保存后,我们可以到设置面板的快捷键设置里面(keymap)设置宏的快捷键
在keymap设置中,我们选择Macros设置,也就是宏设置,点击展开后,你可以看到我们刚刚录制的宏"auto make" ,这时右键单机选择 "add keyboard Shortcut" 为我们的宏设置快捷键
我们按下Ctrl+S设置快捷键,这时下面会出现一个红色的警告,告诉我们这个快捷键已经被save All这个操作占用了,但是不用管,直接点OK保存
保存时会提示你删除占用的改快捷的操作设置才能设置快捷键,直接点击"Remove"删除,然后就能保存成功了。
五、宏的改进版:
1、按步骤四录制的宏只对java文件启作用,但是对于资源文件并未起作用。因此在录制宏的时候需要多做一步,在资源页面执行快捷键command+上档键+F9,就可以热加载资源文件了。
参考文档: