Apereo CAS 调试

如何在 Intellij 里调试

其实只要 java -jar cas.war 起起来,然后加个 debug jvm agent 参数就完事了。但是毕竟自己打命令还是麻烦,所以我们这边用 intellij 来跑我们的 war 包,跑起来的时候 intellij 自己就会帮我们把参数加上,并且把 debugger attach 到这个 jmv 里,非常方便。

intellij 配置

注意这个 Before launch 区域,我们可以在跑 war 包之前加一个动作,让 intellij 跑一个 clean build 的 task,这样每次运行的包都能保证是最新的。

如何调试 war 包里的 lib

org.apereo.cas:cas-server-webapp-tomcat:war 里的 WEB-INF/lib 目录下可以看到很多 jar 包,包括 cas-server-core。这时候我们会发现在 Intellij 里双击 shift 然后输入包里的类 (比如 DefaultCentralAuthenticationService 这个类),是没法找到的。因为这个 jar 包里的 lib 的源码不在 source.jar 里。

怎么办呢?我们需要直接把它引入到项目里,就能调试了:

testCompile group: 'org.apereo.cas', name: 'cas-server-core', version: project.'cas.version'

把它放到 testCompile 里可以避免我们在 build cas.war 的时候把这个包重复引入,这样就达到了既能调试又能不引入多余依赖的效果。

此条目发表在折腾 CAS, 搬砖杂记分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据