[Java] JRebel + Maven + Jetty 熱部署

早就厭煩了 Java 開發不斷的容器自動重新加載漫長的過程,研究 maven + jetty 熱部署方案的過程中偶然發現一樣不錯的東東,試用了一下果然很爽,發上來給大家共享,此物名爲 JRebel (javarebel),目前支持大部分主流的 Java 容器,配置也相當簡單,以下是與 maven + jetty 環境整合的步驟與要點:

 

首先,下載 JRebel 包,目前網上有兩個破解版本分別是 JRebel2.1a 以及 JRebel3.0-M1,我使用的是前者,下面是下載地址:http://d.namipan.com/d/842d40cc1ed226fc69e04892cdaeaec85cf85be105f41400 (需要的請儘快下載,以免鏈接失效)。

 

然後拷貝到 %REBEL_HOME% 目錄並添加該環境變量,進入目錄運行 java -jar %REBEL_HOME%/jrebel.jar 生成根據本機 JVM 環境生成的 jrebel-bootstrap.jar 運行文件。

 

然後添加 MAVEN 運行環境變量:MAVEN_OPTS 值爲 -noverify -Xbootclasspath/p:%REBEL_HOME%/jrebel-bootstrap.jar;%REBEL_HOME%/jrebel.jar 然後再配置目標項目的 pom.xml,關閉 maven 的 jetty 插件本身的 reload 配置:

 

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
</configuration>
</plugin>

 

最後啓動 mvn jetty:run 你會發現現在不需要 reload 服務器就可以加載實時修改過的 class 文件了,很不錯吧。其實我個人更推薦不要設置 MAVEN_OPTS 環境變量,新建一個比如名爲 mvnrebel.bat 的文件,改寫一下 mvn.bat 文件,把以上的運行命令加進去,這樣還保留了原本的 mvn 執行文件,同時也可以根據需要啓動帶熱部署的方案。

 

JRefer 工具還提供其他各種主流環境的整合方案,包括 JBoss,Glassfish,Tomcat,SpringSource,Weblogic,SAP 等,詳細內容請參考:http://www.zeroturnaround.com/reference-manual/server.html 對於開發人員來說,這無疑會大大減輕開發重新加載的問題,據調查平均可以提高 20% 的開發效率,效果相當的可觀哦,有興趣的朋友值得一試~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章