如何用YAML配置在WildFly部署含子部署(JAR/WAR)的EAR文件?
问题背景
WildFly已支持YAML配置扩展,我已通过以下YAML配置成功部署JAR文件:
wildfly-configuration: deployment: test.jar: content: - path: test.jar relative-to: jboss.server.base.dir archive: true
现需部署包含JAR和WAR子部署的test.ear文件,期望部署EAR时自动部署其内部所有子部署,无需手动更新EAR内的application.xml定义模块。目前WildFly仅部署application.xml中列出的子部署,请问能否通过YAML配置实现自动部署所有子部署的需求?若可以,请提供示例或配置指引。
解决方案
可以通过YAML配置实现该需求,核心是利用WildFly的自动子部署检测特性,在EAR的部署配置中开启强制自动扫描子部署的选项。
配置示例
wildfly-configuration: deployment: test.ear: content: - path: test.ear relative-to: jboss.server.base.dir archive: true # 开启自动部署所有子部署,忽略application.xml的列表限制 auto-deploy-subdeployments: true
配置要点说明
auto-deploy-subdeployments: true:该配置会让WildFly自动扫描EAR包内的所有JAR、WAR子模块,无论它们是否在application.xml中被定义,都会自动完成部署。- 如果你的EAR包本身没有
application.xml,WildFly默认会开启自动子部署;若已有application.xml,则需要显式添加此配置来突破原有列表限制。 - 若使用解压后的EAR目录部署,可额外添加
deploy-exploded: true选项,但对于打包的EAR包,auto-deploy-subdeployments是实现需求的关键配置。
补充说明
确保使用的WildFly版本为26或更高(YAML配置扩展在2022年4月推出),同时保证EAR包内的子模块结构完整、无损坏,避免因包本身问题导致部署失败。
内容的提问来源于stack exchange,提问作者Maduranga Mathotaarachchi
相关产品推荐
相关产品推荐

