我想知道哪些Java Web应用程序框架提供“热重载”功能,即允许开发应用程序并在服务器上“几乎即时”重新部署它们(即少于几秒钟)。
在Java领域中,Play!直接支持此功能,但我正在寻找更详尽的列表。
我所知道的其他例子包括:Nuxeo WebEngine(前提是你正在使用Eclipse和正确的插件),或者在Python世界中,Django和Pylons(使用--reload
选项时)。
我想知道哪些Java Web应用程序框架提供“热重载”功能,即允许开发应用程序并在服务器上“几乎即时”重新部署它们(即少于几秒钟)。
在Java领域中,Play!直接支持此功能,但我正在寻找更详尽的列表。
我所知道的其他例子包括:Nuxeo WebEngine(前提是你正在使用Eclipse和正确的插件),或者在Python世界中,Django和Pylons(使用--reload
选项时)。
如果有人对这几个月后的情况感兴趣:
你可以配置 Jetty,以便它可以热部署您编译好的类(eclipse + netbeans 具有保存时编译功能)。使用 Maven,您可以在 pom.xml 文件中进行以下配置,然后键入 mvn jetty:run
:
<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就可以热部署(但其他框架也一样!)
我假设你是为了开发目的而不是生产(因为在 Java 生产中热重载 == 大失败)而需要这个。很少会有商业产品让我推销,但如果你想要在 Java 中进行热重载以加快开发速度,那么你真正需要的是 JRebel。它的热重载将会相当轻松。
注意: 无论如何,都不要为你的 Java 应用程序使用 JRebel (或任何热部署)。
如果您想编辑Java(控制器,模型)代码并在不重启Web服务器的情况下立即查看更改,可以使用scooter。顺便说一句,它内置的文件浏览器工具允许您通过浏览器编辑(编译)代码。浏览器可能无法作为IDE,但它可以帮助您远程开发应用程序。
有一个新的工具出现了,叫做RelProxy,它是开源的,虽然不像JRebel那样先进,但它可以用于在运行时自由更改代码子集,并重新加载它,几乎没有性能损失,并且无需上下文重新加载(没有会话丢失),无论是在开发还是生产中都可以使用。