启动 Wildfly 时使用 Maven 编辑standalone.xml

Posted

技术标签:

【中文标题】启动 Wildfly 时使用 Maven 编辑standalone.xml【英文标题】:Use Maven to Edit the standalone.xml When Starting Wildfly 【发布时间】:2015-04-29 12:40:56 【问题描述】:

我已经建立了一个Maven项目,它使用Cargo启动了一个独立的Wildfly容器,但是在添加一些新功能的过程中,我需要在standalone.xml中添加一些内容。 (特别是安全领域。)这似乎应该是一项相当普遍的任务,但我找不到办法。

我尝试使用 cargo 内置的 xml-replacement 功能,但它似乎无法添加内容,只能修改现有内容。我的第二次尝试是使用 maven-replacer-plugin,感觉就像是 hack,但可以完成这项工作。我遇到的问题是我找不到在货物安装容器和货物启动容器之间执行替换插件的方法。

提前致谢

【问题讨论】:

【参考方案1】:

我建议从 Cargo 切换到 wildfly-maven-plugin,它是特定于容器但更易于使用的。

您可以通过插件运行任何 CLI 命令来编辑您的 standalone.xml

从我的一个项目中看到这个example。

【讨论】:

不幸的是,这个 POM 已经相当成熟了,我不确定我是否想尝试将其所有积累的配置移植到另一个插件中。除此之外,CLI 命令非常接近于平台依赖性,这对这个项目来说是一个硬道理。 服务器配置将始终依赖于平台。如果您尝试使用 CLI 更新原始 XML 会更安全。 @JamesR.Perkins SO 没有通知我你回复了,我也没有注意到。抱歉耽搁了。我完全不同意这一点。现在我的项目成功地在 Windows、Mac 和 Linux 上构建、部署和运行,没有任何问题。您认为实际上必须依赖于平台的是什么? 对不起,平台我的意思是服务器 :) GlassFish 没有一些配置细节,因为 WildFly 就是我的意思。因此,使用为该平台制作的插件似乎更有意义 IMO。 啊。我这样更有意义。同意,除了货物确实有容器特定的配置,他们只是缺少我需要的那些。事情不总是这样。 Wildfly 配置:cargo.codehaus.org/WildFly+8.x Glassfish 配置:cargo.codehaus.org/Glassfish+4.x【参考方案2】:

当然,您可以覆盖容器的配置,请参阅 here 和 there 如何做到这一点。

在您的情况下,如果您想放置自定义 standalone.xml,您只需将整个文件嵌入到您的项目中并将其放入 configFiles 中,以便 cargo 将其与您的容器一起部署。

【讨论】:

完全覆盖standalone xml的问题是,当容器包更新时,你必须手动将更改合并到standalone的副本中。 是的,这就是这种方法的缺点。在我这样做的项目中,我们认为我们不会经常更改应用程序服务器的版本(因为稳定阶段),所以我们认为这是一个小小的不便。

以上是关于启动 Wildfly 时使用 Maven 编辑standalone.xml的主要内容,如果未能解决你的问题,请参考以下文章

选择多个配置文件时,wildfly-maven-plugin 未部署

Java EE + Wildfly:无法启动服务 jboss.persistenceunit

Wildfly 集群设置问题

无法在 JBoss EAP 6.4 环境中使用 wildfly-maven-plugin 2.0.1 进行部署

启动 WildFly 服务器时出错(地址已在使用中)

使用 wildfly (wildfly:deploy) 在一个简单的 Maven 项目中构建失败