我有一个Maven Java项目的持续构建作业,我需要在作业结束时将构建的应用程序部署到WildFly 21实例中,这个实例必须保持并运行。
因为这是一个Maven项目,所以我计划使用WildFly Maven插件。我在POM上用Maven 3.6.3配置了3.0.2版本的3.6.3:
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>3.0.2.Final</version>
<configuration>
<jboss-home>${jboss.home}</jboss-home>
<server-config>${jboss.ser.config}</server-config>
<properties-file>${jboss.properties.file}</properties-file>
<server-args>
<server-arg>jboss.server.base.dir=${jboss.server.base.dir}</server-arg>
</server-args>
<java-opts>
<java-opt>-Xmx2048m -Xms640m -XX:MaxPermSize=256M</java-opt>
</java-opts>
<startup-timeout>240</startup-timeout>
<timeout>240</timeout>
<protocol>remoting</protocol>
<force>true</force>
<filename>${filename}</filename>
<name>${warfile.name}</name>
<checkPackaging>false</checkPackaging>
<hostname>${jboss.hostname}</hostname>
<port>${jboss.management.port}</port>
</configuration>当我执行mvn wildfly:start或mvn wildfly:run时,WildFly实例启动Ok,应用程序可用,但当达到超时值时,Maven进程退出,WildFly进程收到关闭OS信号,然后停止实例。我想要的是WildFly进程在Maven退出后继续在后台运行。
从插件文档中,我读到了“通配符:启动应用程序服务器并保持进程运行”,因此我猜测至少start目标会在退出后让Wildfly实例运行。但这不是我所看到的。如何使用插件来启动WildFly实例,并在Maven退出后使其在后台继续运行?
提前谢谢。干杯!
发布于 2022-10-07 08:36:14
我认为插件正在做它应该做的事情,因为mvn wildfly:start的范围是Starts a standalone instance of WildFly Application Server. The purpose of this goal is to start a WildFly Application Server for testing during the maven lifecycle.,正如插件主页上所述,所以它们确实意味着这只是为了测试,在达到关闭目标时终止应用服务器是非常有意义的。
因此,对于本例,您应该已经启动并运行了应用程序服务器(通配符)的一个实例,然后使用mvn wildfly:deploy执行连续的工作,因为您不希望在其他环境(如UAT或PROD)上的应用程序服务器每次执行部署时都重新启动。
这里有更多的细节:https://docs.jboss.org/wildfly/plugins/maven/latest/
https://stackoverflow.com/questions/73981090
复制相似问题