在 IDE 中使用 Wildfly Swarm 进行开发而无需重新启动 - "hot deploy" 某处?

Developing with Wildfly Swarm in IDE without restarts - "hot deploy" somewhere?

我对创建 fat-jar JavaEE 应用程序的 Wildfly Swarm 项目很感兴趣,但不知道如何 "hot deploy" 从 IDE 更改 类。

每当我更改一行代码或一个 JSF xhtml 文件时,我目前都必须重新启动整个应用程序,这需要 7 秒左右。这不是很有效率。

Spring Boot 提供了一个 spring-boot-devtools,它至少可以重新加载一些 类, 传统的应用服务器提供热部署协议。 Wildfly Swarm 有类似的东西吗? JRebel 会帮忙吗?

我建议使用 IntelliJ Idea。它的 JavaEE 项目模板可以在大多数应用程序服务器上热部署。

您可以 运行 WildFly Swarm 作为 Java 应用程序直接从您最喜欢的 IDE 中的源代码调用您自己的 Main class 或 org.wildfly.swarm.Swarm class。这为您节省了打包步骤。

至于热 class 重新加载,像往常一样,JVM 将能够重新加载非结构性更改,但每当您 "break" class 签名时都必须重新启动.我还没有尝试过,但 JRebel 很可能可以提供帮助。

如果您是 Eclipse 用户,可以尝试 wildfly-hive。它尝试自动检测 swarm 应用程序并在服务器视图中创建匹配的服务器。您只需单击 start/debug/stop,类似于 Eclipse 中的标准服务器。

我的解决方案是使用 IntelliJ IDEA 并根据我的来源创建一个分解的 WAR 工件。不要包含任何 WildFly Swarm 依赖项,但请包含其他所有内容。

然后您可以使用具有 JBoss 运行 配置的常规旧 WildFly Standalone,IntelliJ 将部署展开的 war。您可以从那里进行热插拔、调试等

为了开发,运行 您在 WildFly Standalone 上的代码。对于生产,请使用 WildFly Swarm jar。这对我来说非常有效,而且我已经使用这种方法几个月了,没有遇到很多问题。

我知道有点晚了,但是在使用 IntelliJ IDEA 时,我们使用的是 org.wildfly.swarm.Swarm class,它可以从 IDE 开始,它给出了您可以在调试模式下热重载 classes。你可以用它做一个运行配置,确保你设置了工作目录和模块配置的使用class路径。