CAS源码的casWebApplication启动后,默认只加载最小的支撑系统的模块,很多模块(大部分在support包下)是需要手动去引入的(对新人来说有坑),这里介绍一下如何手动引入这些模块。
文章目录
- 调试步骤
- 验证模块是否被成功加载
- 问题解决
调试步骤
1.首先确认你需要的哪几个模块,初读源码的开发者可能不一定能准确知道。可以采取如下策略:
- 网络上查找使用overlay方式启动cas服务并需要使用指定功能时依赖了哪些模块。
- 如果上面步骤没找到,可以直接在support包下找,如果不在乎包体积可以把带有相关前缀的全部依赖。如果需要精细化依赖,可以逐个添加,查看功能报错与否。
2.导入相应模块到webapp.gradle中。如下图所示:
dependencies {
// add jdbc implementation
implementation project(":support:cas-server-support-jdbc")
implementation project(":support:cas-server-support-jdbc-drivers")
implementation project(":support:cas-server-support-jdbc-authentication")
implementation project(":support:cas-server-support-json-service-registry")
}
3.rebuild整个项目。
4.启动casWebApplication。
5.断点调试。
验证模块是否被成功加载
一个最简单的方式,用debug模式启动,在相应模块的代码里打断点,看断点是否就绪,断点就绪,意味着该模块代码已经被加载。
另外一种方法,在相应的类上,添加static代码段,如果能执行意味着该类被加载:
问题解决
这里存在一个大坑,就是可能初次在webapp.gradle中添加模块依赖会不生效。
我花了许多时间去调试这个问题,最终发现问题出现在IDEA上,解决方案如下:
- 关闭IDEA。
- 找到CAS源码目录,删除.idea文件夹。
- 启动IDEA。
ATFWUS 2023-07-21