我对创建 fat-jar JavaEE 应用程序的 Wildfly Swarm 项目很感兴趣,但不知道如何从 IDE 中“热部署”更改的类。
每当我更改一行代码或 JSF xhtml 文件时,我目前都必须重新启动整个应用程序,这需要 7 秒左右的时间。这不是很有成效。
Spring Boot 提供了一个 spring-boot-devtools 至少重新加载一些类,传统的应用服务器提供热部署协议。Wildfly Swarm 有类似的东西吗?JRebel 会在这里提供帮助吗?
我对创建 fat-jar JavaEE 应用程序的 Wildfly Swarm 项目很感兴趣,但不知道如何从 IDE 中“热部署”更改的类。
每当我更改一行代码或 JSF xhtml 文件时,我目前都必须重新启动整个应用程序,这需要 7 秒左右的时间。这不是很有成效。
Spring Boot 提供了一个 spring-boot-devtools 至少重新加载一些类,传统的应用服务器提供热部署协议。Wildfly Swarm 有类似的东西吗?JRebel 会在这里提供帮助吗?
通过调用自己的 Main 类或 org.wildfly.swarm.Swarm 类,您可以直接从您喜欢的 IDE 中的源代码将 WildFly Swarm 作为 Java 应用程序运行。这为您节省了打包步骤。
至于热类重新加载,像往常一样,JVM 将能够重新加载非结构性更改,但每当您“破坏”类签名时都必须重新启动。我还没有尝试过,但 JRebel 很可能能够在那里提供帮助。
如果你是 Eclipse 用户,你可以试试wildfly-hive。它尝试自动检测 swarm 应用程序并在服务器视图中创建匹配的服务器。您只需单击启动/调试/停止,类似于 Eclipse 中的标准服务器。
我的解决方案是使用 IntelliJ IDEA 并从我的来源创建一个爆炸的 WAR 工件。不要包含任何 WildFly Swarm 依赖项,但要包含其他所有内容。
然后,您可以使用带有 JBoss 运行配置的常规旧 WildFly Standalone,IntelliJ 将部署爆炸战争。从那里您可以进行热插拔、调试等。
对于开发,请在 WildFly Standalone 上运行您的代码。对于生产,使用 WildFly Swarm jar。这对我来说非常有效,而且我已经使用这种方法几个月了,没有遇到很多问题。
我知道这有点晚了,但是在使用 IntelliJ IDEA 时,我们使用的是 org.wildfly.swarm.Swarm 类,它可以从 IDE 启动,它使您能够在调试模式下热重载类。您可以使用它进行运行配置,确保设置工作目录和模块配置的使用类路径。
我建议使用 IntelliJ Idea。它的 JavaEE 项目模板可以在大多数应用服务器上进行热部署。