我想知道哪些 Java Web 应用程序框架提供了“热重载”功能,即它允许开发应用程序并将它们“几乎立即”(即在几秒钟内)重新部署到服务器上。
在 Java 世界中,玩!开箱即用,但我正在寻找的是更详尽的列表。
我知道的其他示例包括:Nuxeo WebEngine,前提是您使用的是 Eclipse 和正确的插件,或者在 Python 世界中,Django 和 Pylons(使用该--reload
选项时)。
我想知道哪些 Java Web 应用程序框架提供了“热重载”功能,即它允许开发应用程序并将它们“几乎立即”(即在几秒钟内)重新部署到服务器上。
在 Java 世界中,玩!开箱即用,但我正在寻找的是更详尽的列表。
我知道的其他示例包括:Nuxeo WebEngine,前提是您使用的是 Eclipse 和正确的插件,或者在 Python 世界中,Django 和 Pylons(使用该--reload
选项时)。
据我所知,如果使用jrebel ,您几乎可以对每个 java 框架进行热重载。如其他答案所述,某些框架内置了某种热部署。
如果在那几个月后有人可能感兴趣:
您可以配置码头,以便热部署您编译的类(eclipse + netbeans 具有保存时编译功能)。使用 maven,您可以mvn jetty:run
在 pom.xml 中的此配置后键入:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<scanTargets>
<scanTarget>target/classes/</scanTarget>
</scanTargets>
<scanIntervalSeconds>1</scanIntervalSeconds>
</configuration>
</plugin>
这可以在不使用 jrebel 的情况下完成,这意味着:在 IDE 中进行更改 + 保存 + 转到浏览器 + F5 => 完成!
使用该功能,例如 wicket 或 vaadin 可以热部署(但其他人也可以!)
Tapestry 5 具有单个类/页面更改的热部署,Seam 也是如此。
我将假设您希望将此用于开发目的而不是用于生产(因为 Java 生产中的热重载 == 大失败)。我很少会推销商业产品,但如果你想在 Java 中热重载以加快开发速度,你真正想要的是JRebel。对您而言,它的热重装将相当轻松。
注意:无论您做什么,都不要为您的 Java 应用程序使用 JRebel(或任何热部署)。
如果您使用POJOs
, 而不是EJBs
,Seam framework
应该在您的列表中。
如果您想编辑 Java(控制器、模型)代码并刷新浏览器以立即查看更改,而无需重新启动 Web 服务器,您可以使用scooter。顺便说一句,它的内置工具文件浏览器允许您通过浏览器编辑(编译)您的代码。浏览器可能无法作为 IDE,但它可以帮助您远程开发应用程序。
有一个新的孩子,RelProxy,它是开源的,不像 JRebel 那样先进,但它可以用来在运行时自由更改代码的子集并重新加载它,几乎没有性能损失,也不需要重新加载上下文如果您愿意,可以在开发和生产中使用(不会丢失会话)。
在 Eclipse 中开发 struts(2) 应用程序时,它也会在您保存成功编译的文件后立即自动重新加载。
但是,每次重新加载都会丢失会话,这有点烦人..