JavaRebel (对应用代码变更进行动态部署的 JVM 插件)的最新版开始支持 WAR/EAR 热部署及与 Spring 和 Struts 2 框架的集成。最近 ZeroTurnaround 开发小组发布了JavaRebel 2.0 版。
该工具使用Java agent( -javaagent )对 Web 应用中 Java 类的变更进行热部署以覆盖 Servlet 容器( JBoss 和 Tomcat )默认的 WAR 部署行为(其默认行为会重新部署整个 Web 应用)。
JavaRebel 2.0 的新特性列举如下:
- 对 Java 类方法体的变更。
- 对类结构的变更,包括增加方法、属性、构造方法、改变 / 增加注解及改变接口。
- 使用 JavaRebel插件集成 Spring 和 Guice 框架,这样就可以动态更改应用配置了。我们可以使用 JavaRebel SDK 创建插件,同时它还集成了一些 MVC 框架,如 Wicket 、 Stripes 、 Tapestry 4 及 Struts2 ,通过 open API 增加进一步的支持。
- 打包与目录形式的部署:新版的JavaRebel 支持以WAR/EAR 文件形式部署应用,也支持按照目录结构的方式进行部署。如果修改了应用文件,那么所有的类和资源都会即时重载。该特性需要一个名为rebel.xml 的新配置文件来告诉JavaRebel 到哪里寻找更改后的类和资源。有一个 Maven 插件可用来在 IDE 外面进行该配置。
新版的 JavaRebel 还对性能、启动时间和反射 API 进行了一些改进,同时增强了测试套件以对产品功能进行验证,此外提供了对 AspectJ 装载期编织、IBM WebSphere 及 Groovy 动态语言的支持,而且 JavaRebel 还对 Eclipse 平台提供了支持,这样当开发者修改源代码后,他们就可以直接加载改变后的插件而无需开启新的 Eclipse 实例了。
查看英文原文: JavaRebel 2.0 supports WAR/EAR hot-deployment and Spring integration
评论