2012-09-12 59 views
12

我一直在檢查JRebel。根據他們的網站:JRebel有什麼好處?

「JRebel的是,通過重新加載在您的工作空間做成一個正在運行的JVM的變化加速了基於JVM的開發(Java中,斯卡拉,Groovy中),而無需重新啓動或重新部署的任何東西的Java插件,在編碼的同時保持應用程序的狀態。「

這似乎與我們已經用Eclipse,Netbeans和IntelliJ實現的一樣:我們保存並且我們的更改立即部署。 JRebel會給我們什麼額外的好處?

有人能解釋給我嗎?

+0

JRebel的使用可怕的類重載的方法。由於我猜測JRebel如何工作,我絕不會使用它。 – michael

回答

12

IDE(Eclipse,NetBeans或IntelliJ)自動重新部署該應用程序如果配置如此,這不是即時的。基本上,只是自動化仍然會導致應用程序的真正重新部署,包括創建一個新的類加載器以及初始化過程中涉及的所有補充內容。

在某些情況下,IDE與某些容器結合可以保留會話狀態 - 如果這對您有用,那真棒。如果沒有 - 在這裏你去 - JRebel是答案。

在打包部署的情況下,構建階段相加,但通過使用JRebel,您可以一次性清除所有內容。

+0

你能否提供你的想法http://stackoverflow.com/questions/35249234/how-hot-deployment-works-internal。我不認爲這個答案仍然有效,即'基本上,這只是自動化,仍然導致真正的重新部署..'因爲我發現日食重新部署現在真的很快現在一天 – emilly

+0

@emilly香草重新部署仍然只是一個重新部署,無論如果它是由Eclipse或任何其他IDE觸發的。除非運行時的特定技術爲IDE(或任何其他工具)提供了特殊的掛鉤以便觸發並且針對更新/重新部署速度進行了優化。 –

5

有些更改不可能重新加載,尤其是在更改jar文件類時無需重新加載或重新啓動服務器(無論您使用哪個服務器)。它會自動更改服務器中已編譯的類,並自動在類路徑中重新加載。

在保存和刷新IDE中的更改時,基本上是重建戰爭文件並將其重新部署到服務器上。當使用多個jar文件和war文件重新部署大型應用程序並且必須刷新所有類路徑時,此過程仍然會變慢。

0

JRebel不是 IDE插件。 JRebel預先捆綁了Eclipse,IntelliJ IDEA,NetBeans和JDeveloper的插件,但是,JRebel代理被設計爲IDE不可知的,並且可以在IDE之外使用。

如果您有任何問題JRebel是什麼,它不是什麼?這裏是一個可以提供所有你正在尋找的答案的鏈接:

What JRebel is and what it is not?

下面是一個關於JRebel的視頻:

JRebel video