打包
`mvn -Pdistribution -pl distribution/server-dist -am -Dmaven.test.skip clean install`
修改数据源
1 默认配置 `./wildfly/server-subsystem/src/main/resources/subsystem-templates/keycloak-datasources.xml`
在里面配置 mysql,包括驱动、连接url、账号、密码
2 添加驱动
在 `./distribution/galleon-feature-packs/adapter-galleon-pack/target/wildfly/modules/system/layers/base/com` 目录下
创建 `mysql/main/` 目录,把 `mysql-connector-java-8.0.20.jar` 包放在该目录下,同时创建文件 `module.xml`:
“`
<?xml version=”1.0″ encoding=”UTF-8″?>
<module xmlns=”urn:jboss:module:1.3″ name=”com.mysql”>
<resources>
<resource-root path=”mysql-connector-java-8.0.20.jar”/>
</resources>
<dependencies>
<module name=”javax.api”/>
<module name=”javax.transaction.api”/>
</dependencies>
</module>
“`
修改日志配置
> 为了出错的时候方便排查问题,习惯将日志级别设置为 DEBUG,那么该怎么修改配置,让我们每次编译打包的时候,不需要再手动修改
## 方法1
修改 `./distribution/feature-packs/server-feature-pack/src/main/resources/configuration/standalone/subsystems.xml`
去掉 `<subsystem>logging.xml</subsystem>`,
然后在 `template.xml` 中 `<profile>` 添加 `<subsystem xmlns=”urn:jboss:domain:logging:8.0″>` 模块;
> 不推荐,因为不是规范做法
## 方法2
先说下怎么配置:
在目录 `./wildfly/server-subsystem/src/main/resources/subsystem-templates` 下创建 `logging.xml`,格式参考该目录下其他配置,内容可直接复制编译后的 `standalone.xml` 中 `logging` 模块的内容
再说下怎么找到该方法的:
`./distribution/feature-packs/server-feature-pack/pom.xml` 中配置了打包插件 `wildfly-feature-pack-build-maven-plugin`,指定了打包的配置说明文件 `feature-pack-build.xml`,该文件定义了 `standalone`, `standalone-ha`,`domain`,`host`,`host-master`,`host-slave` 这几种部署方式的配置文件的生成模板(template)及子系统的模块声明文件(subsystems),我们到指定的子系统声明文件就可以找到每一个子系统对应的配置文件名,比如日志对应 `logging.xml`,keycloak数据源的配置对应 `keycloak-datasources.xml`,我们在 `./wildfly/server-subsystem/src/main/resources/subsystem-templates` 下可以找到对应的keycloak相关的配置模板,但是没有 logging 的,那么我们可以尝试创建一个试试,事实证明确实可以。
> 注意,我们从 docs 文档中看到,官方建议我们修改这些模板之后,同时修改 cli 模板,我们暂时忽略不做处理
## 方法3
我们可以用 `jboss-cli` 命令动态设置,好处就是即时生效,不用重启服务,详细见 [使用 jboss-cli 修改配置](#使用-jboss-cli-修改配置)
修改主题(theme)
`./themes/src/main/resources/theme`
# ModuleNotFoundException: org.keycloak.keycloak-server-subsystem
在 `./distribution/feature-packs/server-feature-pack/src/main/resources/content` 下创建文件:
`modules/layers.conf`
“`
layers=keycloak
“`
使用 jboss-cli 修改配置
学会了这一章,我们可以实现:1.在源码中修改配置;2.在服务运行时动态修改配置(比如系统在运行中直接修改日志级别)
## 可视化组件
`./bin/jboss-cli.sh –connect controller=”localhost:10090″ –gui`
## demo
`/subsystem=logging/console-handler=CONSOLE/:write-attribute(name=level,value=DEBUG)`