一、場景:
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,就可以熱加載資源文件了。
參考文檔: