免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
intellij熱部署
精通 Intellij Idea 之熱部署 部署在項目開發(fā)過程中是常有的事, 特別是 debug 的時候。 但是如果每次 fix 一個 bug 都要把 整個項目重新部署一遍以便測試 fix 的效果或者繼續(xù) debug 其他 bug,那對開發(fā)人員來說無疑 是一大噩夢。 不過誰都不想噩夢連連, 有了 JVM 的 hotSwap 以及 Intellij Idea 對 debug, hotSwap 的支持,從此美夢相伴(夸張了點:)) 。今天通過這篇文章介紹一下通過對 Intellij Idea 熱部署 的設(shè)置達到最方便的最高效的 debug 效果。 我想在介紹具體設(shè)置之前,不妨了解一些背景知識和概念。 ? HotSwap:“HotSwap”是 JPDA(Java Platform Debugger Architecture)中的一個特性, JPDA 增強是自 Java 2 SDK1.4新增的功能。HotSwap 允許將 JVM 中的類定義替換為新的 類定義,這就允許開發(fā)人員在 debug 時,將修改過的 class 替換 JVM 中舊有的 class,無 需重新啟動服務(wù)器。不過,目前 HotSwap 只支持對方法 body 的修改,不支持對類和方法 簽名的修改(比如修改類名,方法名,方法參數(shù)等) ??紤]這些限制,也是有理由的,替 換類定義,就需要新類和舊類之間有一個關(guān)聯(lián),這里關(guān)聯(lián)就是類的全名(或許還有其他 信息) ,類名都改了,就不知道替換哪個類了。至于方法簽名的修改,應(yīng)該是考慮到運行 時方法的調(diào)用,通過方法簽名替換已有的方法調(diào)用。 ? 三種目錄 三種目錄:項目的源程序目錄,構(gòu)建輸出目錄,部署目錄(這是我按照我個人理解劃 分的) 。熱部署的設(shè)置與這些目錄有著密切關(guān)系。源程序目錄包括 java 文件,資源文件, web 資源文件等項目文件的目錄;構(gòu)建輸出目錄是指通過編譯 java 源文件,copy 資源文 件構(gòu)建一個應(yīng)用程序部署之后應(yīng)該具有的目錄結(jié)構(gòu);部署目錄很好理解,就是應(yīng)用程序 在服務(wù)器中可以存在的位置。 通常我們部署一個應(yīng)用是將該應(yīng)用打包成 war 或者 ear, 而通常開發(fā)階段是構(gòu)建成 Server 指定 的目錄結(jié)構(gòu)來部署到 Server 上,如果每次要 copy 來 copy 去,那麻煩死了。所以我們要想辦 法減少不必要的 copy。 ? 第一種方法 第一種方法:在 Server 部署目錄下設(shè)置構(gòu)建輸出目錄,以 tomcat 為例,就是 在%tomcat_home%\webapps 目錄下建立一個新的目錄,目錄名就是你的應(yīng)用 context,具 體就是打開項目設(shè)置界面(ctrl+alt+shift+S,v8.0) ,選擇 Modules,將你的應(yīng)用 Exploded Directory 設(shè)置為%tomcat_home%\webapps\yourContext。 同時, 將你各個 Module 的編譯輸 出路徑設(shè)置為%tomcat_home%\webapps\yourContext\WEB-INF\classes (可能需要你預先手 動建立) ,這樣 class 文件就自動生成到該目錄下。 ? 第 二 種 方 法 : 現(xiàn) 在 一 些 Server 都 支 持 重 定 向 , 以 tomcat 為 例 , 可 以 在%tomcat_home%\conf\Catalina\localhost 下創(chuàng)建一個 xml 配置文件將部署目錄指定為你 的 構(gòu) 建 輸 出 目 錄 。 代 碼 片 段 如 : <Context path=”/myApp” docBase=”D:\workspace\myProject\out\exploded\myApp” />。 這樣每次修改了 java 文件之后 comile 一下修改的文件, 對于 jsp 需要 make 一下, 就能達到熱部署的目的。 其實現(xiàn)在 Intellj Idea 默認設(shè)置使用的就是這種方法,只不過這個重定向的配置文件在你的 Documents and Settings 里面,所以你如果你使用這樣方法,不必自己設(shè)置。 其實,這兩種方法是異曲同工。 進一步設(shè)置:將你的構(gòu)建輸出目錄直接設(shè)置在源程序目錄中,然后重定向的 docBase 直接指 進一步設(shè)置 向你的 web 根目錄(就是 WEB-INF 的父目錄) 。這樣,你只要將編譯輸出目錄設(shè)置為 WEB-INF\classes 就行了,而且,修改 JSP 文件都不要重新構(gòu)建,唯一要做的就是修改了 java 文件之后 compile 一下。 再進一步設(shè)置:打開 Setting 界面(ctrl+alt+S) ,然后 再進一步設(shè)置 ? 其一:選擇 Compiler 選項,在 Deploy web application to servers after compilatoin 下勾

選 Never,為什么選 Never?因為根據(jù)我們上面的設(shè)置,對于 java 文件的修改,編譯 (compile,ctrl+shift+f9)之后已經(jīng)更新到了部署目錄,而對于其他文件(例如 jsp) ,構(gòu) 建(make,ctrl+f9)之后也都更新到了部署目錄,當然如果你的部署目錄就設(shè)置在源程序 目錄中,那 jsp 都不要在 make 了。 ? 其二: 選擇 Debugger-HotSwap 選項, 確保勾選了 Make project before reloading classes, 同時選擇 Reload classes after compilation 為 Always。這樣我們在編譯某個修改了的 java 文件之后,就會利用 HotSwap 機制 reload class,而 Make project before reloading classes 就確保了其他修改過的文件一起同步到部署目錄。 這樣,經(jīng)過上面這些設(shè)置,在 debug 時最大程度上減少了 Re-deploy 和重啟服務(wù)器的次數(shù)。對 于內(nèi)存不足的電腦來說,re-deploy 次數(shù)多了,就會 outOfMemory,然后不得不重啟服務(wù)器。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
IntelliJ IDEA + Maven + Tomcat 本地開發(fā)、部署、調(diào)試。
IDEA Spring Boot 的三種熱加載方案,看完弄懂,不用加班~
Tomcat設(shè)置心得
Tomcat 部署方式
IntelliJ IDEA TOMCAT部署
使用IntelliJ IDEA開發(fā)java web
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服