如何通过脚本部署模块/提供者/spi?

ina*_*lus 5 wildfly jboss-cli keycloak

有没有办法通过脚本将模块部署到 Wildfly (例如,无需手动修改 XML 文件)?我知道jboss-cli.sh命令 toadd module但有没有办法直接修改我的standalone.xml/domain.xml或做一些等效的事情来告诉 Wildfly 加载模块?


换种说法...

我发现了两种部署模块的方法:

1) 直接将jar复制到热部署中$KEYCLOAK_HOME/standalone/deployments (根据该目录中的README,不建议将此方法用于生产部署,之后无需任何手动工作即可工作。)

2)运行jboss-cli.sh --command="module add --name=com.example.MySpi"然后手动编辑standalone.xml(或domain.xml)以将您的模块放在“提供者”列表中,如下所示:

<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
  <web-context>auth</web-context>
  <providers>
    ...
    <provider>module:com.example.MySpi</provider>
  </providers>
  ...
</subsystem>
Run Code Online (Sandbox Code Playgroud)

...最后重启服务器。

我想使用推荐的方式,但不手动编辑 XML 文件。有没有推荐的路径?

小智 8

你可以做类似的事情

jboss-cli.sh --command="/subsystem=keycloak-server:list-add(name=providers, value=module:com.example.MySpi)"
Run Code Online (Sandbox Code Playgroud)

基本上,您可以使用 jboss-cli 编写 standalone.xml 中的所有内容。要了解更多您的配置在内部的外观,您可以/subsystem=keycloak-server:read-resource(recursive=true)在 jboss-cli 中尝试。