Red Hat のソリューションアーキテクトの瀬戸です。
これはJakarta EE / Java EE Advent Calendar 2025の二日目の記事です。
昨日は @kazumura による 解説: Jakarta EE Developer Survey 2025 で
明日は @TTakakiyo による 記事です。(公開されたらリンクを張ります!)
以前、 JBoss EAP 8.1 で新しくサポートされた起動可能なJAR(Bootable jar)とGalleonによるサーバーの軽量化を試す - 赤帽エンジニアブログ という記事でJBoss EAPで起動可能なjar(uber-jar)がサポートされたよ!ということをご紹介させてもらいました。
その時にどうやって設定するの?standalone.xmlはどうやって変更するの?と質問を受けたので今回はそちらの方法を書きます。
簡単に言うと、pom.xmlにpackaging-scripts属性を追加し、実行するスクリプトを指定する事で、構成を変更することができます。
packageing-scriptの書き方の例(JBoss EAPのドキュメント: JBoss EAPのプロビジョニングより)
<configuration> ~~~ <packaging-scripts> <packaging-script> <scripts> <script>../scripts/script1.cli</script> </scripts> <commands> <command>/system-property=foo:add(value=bar)</command> </commands> <properties-files> <property-file>my-properties.properties</property-file> </properties-files> <java-opts> <java-opt>-Xmx256m</java-opt> </java-opts> <!-- Expressions resolved during server execution --> <resolve-expressions>false</resolve-expressions> </packaging-script> </packaging-scripts> ~~~ </configuration>
実際の例で試してみます。 待ち受けするポートを18080に、管理画面のポートを19990に変更します。
<packaging-scripts> <packaging-script> <commands> <command>/socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name="port",value="18080")</command> <command>/socket-binding-group=standard-sockets/socket-binding=management-http:write-attribute(name="port",value="19990")</command> </commands> </packaging-script> </packaging-scripts>
これを、 JBoss EAP 8.1 で新しくサポートされた起動可能なJAR(Bootable jar)とGalleonによるサーバーの軽量化を試す - 赤帽エンジニアブログ で使用したpom.xmlに追記して実行します。 ビルド中に指定したスクリプトが実行されることが確認できます。

出来上がったjarを実行すると実際にポートが変更されていることが確認できます。

ということで、簡単にですが、JBoss EAPで起動可能なjarを指定したときに設定を変更する方法を紹介させてもらいました。
現時点では構築済みの設定ファイル(standalone.xml)を直接指定する方法は提供されていないようです。 必要とされているお客様はサポートチャンネルを通じてご連絡ください。
参考