前言
我目前在做关于keycloak的个人证书登录国密支持,完整说就是
原先的keycloak能够支持个人证书登录,除国密个人证书外,现在我需要使得国密个人证书也能够被keycloak支持。
整个过程都是在IDEA上对keycloak代码进行操作,整个过程是反复的修改、编译、运行源码。
说明
我将在这个过程中遇到的一些问题,写出来并提供解决方案。keylcoak是一个强大的工具,我希望这个文档能够帮助到研究这个工具的小伙伴们,小伙伴们可以在下面提出问题,我们可以一起讨论,也欢迎小伙伴提供好的问题,好的解决方案,这部分内容我会放到这个文档中,并注明出处。
Q&A
- 不能完整mvn install
整个项目通过git下载以后,就是使用命令mvn clean install
编译项目,在编译的过程会出现两个问题
- Some Enforcer rules have failed
- There are test failures
第一个问题是插件强制插件约束,第二个是测试失败
这两个问题添加参数忽略掉即可
完整的install命令是
mvn clean install -Denforcer.skip=true -DskipTests=true
在使用这样的命令还是不能完整编译,你看看最后报错的情况是什么,编译会因为网络问题而中断,只需多试几次就行!
- 编译完IDEA不能正常运行
只要正常完成编译步骤,按照官方的readme文档,在git界面keycloak的根目录下执行
mvn -f testsuite/utils/pom.xml exec:java -Pkeycloak-server
看到项目启动成功,则说明整个项目起来了。
在IDEA中的启动方式,找到下面这个类,启动它
启动build完成以后,可能会报命令过长而启动失败,这个时候在右上角打开启动类的配置,做如下操作,再次启动即可!
- 类找不到
这个问题,会让人很抓狂,情况一般是这样,类明明存在,但是就是报找不到。
这种事情发生了呢,我一般都是将项目重新clean install 一遍,莫名其妙就好了。 - 枚举常量不存在
这个我也没有直接去解决的办法,还是重新clean install 然后再到IDEA上启动,这个有效! - java 编译器版本问题
这个问题通常出现在使用git编译时本地环境是1.8,在IDEA项目的编译环境也是1.8的时候,需要做如下调整
将原先1.7的改成1.8就可,这个根据你运行时候IDEA针对性的给出的错误进行精确调整,全都改成1.8感觉上也没问题。
- tips:关于这个问题我补充一点就是如果git编译项目使用的jdk版本是IDEA运行项目时的最低版本,如果IDEA运行项目的Java版本低于编译项目的版本,项目是无法启动的。