如何在Wildfly 9中实现WAR文件解压式部署并生成WAR文件夹?
在Wildfly 9中实现WAR文件的解压模式部署(同目录生成对应解压文件夹)
嘿,我来帮你搞定这个需求!在Wildfly 9里要实现WAR解压后和原文件同目录,并且完成部署,有几种靠谱的方法,我给你一步步说明:
方法一:手动解压+部署(最直观可控)
这种方式适合一次性部署,步骤简单明了:
- 找到你的WAR文件所在目录,比如
/opt/wildfly/standalone/deployments/myapp.war - 用解压命令把WAR文件解压到同目录下的同名文件夹(你也可以自定义文件夹名称,后续步骤对应调整即可):
unzip myapp.war -d myapp.war - 告诉Wildfly部署这个解压后的文件夹:
- 进入Wildfly的
standalone/deployments目录(域模式对应domain/deployments) - 创建一个和解压文件夹同名的
.dodeploy触发文件,比如解压文件夹是myapp.war,就执行:touch myapp.war.dodeploy - Wildfly会自动检测到这个触发文件,随即部署对应的解压文件夹。部署成功后,你会看到目录下生成
myapp.war.deployed标识文件。
- 进入Wildfly的
方法二:配置Wildfly自动将WAR解压到原目录并部署
如果希望每次部署WAR时,服务器都自动在原WAR同目录生成解压文件夹,可以修改配置实现自动化:
- 打开Wildfly的
standalone/configuration/standalone.xml(域模式对应domain/configuration/domain.xml) - 找到
subsystem节点下的deployment-scanner配置块,默认内容大概是这样:<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> </subsystem> - 修改配置,添加
unzip-enabled="true"和unzip-target-dir属性,指定解压目录为WAR所在的部署目录:<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" unzip-enabled="true" unzip-target-dir="${jboss.server.base.dir}/deployments"/> </subsystem> - 保存配置后重启Wildfly生效。之后你只要把WAR文件放到
deployments目录,服务器就会自动完成解压和部署,解压后的文件夹会和原WAR文件在同一目录。
方法三:使用Wildfly CLI命令部署解压后的文件夹
如果已经手动解压好WAR,也可以用CLI命令快速部署:
- 启动Wildfly后,打开CLI客户端:
./bin/jboss-cli.sh --connect - 在CLI中执行部署命令,指定解压文件夹的路径:
这里的路径是你解压后的文件夹路径,deploy /opt/wildfly/standalone/deployments/myapp.war --name=myapp.war--name参数用于指定部署名称,方便后续管理。 - 执行完成后,输入
deployments命令就能查看部署状态,确认是否成功。
注意事项
- 用方法二的自动配置时,要确保部署目录有足够的读写权限,Wildfly需要能创建解压文件夹和写入标识文件。
- 部署完成后,原WAR文件可保留或删除;如果保留,后续Wildfly扫描到WAR文件变化时,可能会重新触发解压部署,可根据需求决定是否保留。
内容的提问来源于stack exchange,提问作者Selvakumar
相关产品推荐
相关产品推荐

