12

我想知道哪些 Java Web 应用程序框架提供了“热重载”功能,即它允许开发应用程序并将它们“几乎立即”(即在几秒钟内)重新部署到服务器上。

在 Java 世界中,玩!开箱即用,但我正在寻找的是更详尽的列表。

我知道的其他示例包括:Nuxeo WebEngine,前提是您使用的是 Eclipse 和正确的插件,或者在 Python 世界中,Django 和 Pylons(使用该--reload选项时)。

4

8 回答 8

15

据我所知,如果使用jrebel ,您几乎可以对每个 java 框架进行热重载。如其他答案所述,某些框架内置了某种热部署。

于 2010-05-16T14:44:04.047 回答
12

如果在那几个月后有人可能感兴趣:

您可以配置码头,以便热部署您编译的类(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 可以热部署(但其他人也可以!)

于 2010-09-08T13:26:00.797 回答
2

Tapestry 5 具有单个类/页面更改的热部署,Seam 也是如此。

于 2010-05-16T14:41:13.607 回答
1

我将假设您希望将此用于开发目的而不是用于生产(因为 Java 生产中的热重载 == 大失败)。我很少会推销商业产品,但如果你想在 Java 中热重载以加快开发速度,你真正想要的是JRebel。对您而言,它的热重装将相当轻松。

注意:无论您做什么,都不要为您的 Java 应用程序使用 JRebel(或任何热部署)。

于 2010-09-08T13:40:29.877 回答
0

如果您使用POJOs, 而不是EJBs,Seam framework应该在您的列表中。

于 2010-05-16T14:39:55.380 回答
0

如果您想编辑 Java(控制器、模型)代码并刷新浏览器以立即查看更改,而无需重新启动 Web 服务器,您可以使用scooter。顺便说一句,它的内置工具文件浏览器允许您通过浏览器编辑(编译)您的代码。浏览器可能无法作为 IDE,但它可以帮助您远程开发应用程序。

于 2010-12-12T16:10:44.800 回答
0

有一个新的孩子,RelProxy,它是开源的,不像 JRebel 那样先进,但它可以用来在运行时自由更改代码的子集并重新加载它,几乎没有性能损失,也不需要重新加载上下文如果您愿意,可以在开发和生产中使用(不会丢失会话)。

于 2015-02-02T12:24:39.603 回答
-1

在 Eclipse 中开发 struts(2) 应用程序时,它也会在您保存成功编译的文件后立即自动重新加载。

但是,每次重新加载都会丢失会话,这有点烦人..

于 2010-05-16T14:39:10.727 回答