开发指南
开发工具及相关软件
软件 | 版本 | 备注 |
---|---|---|
JDK | 1.8 + | JAVA运行及开发工具包 |
eclipse-jee | 2021-09 + | 推荐JAVA开发工具 |
Gradle | 7.2+ | 代码构建 |
Tomcat/tomcat-embed | 9 + | 应用服务器 |
MySQL | 8.0.21 + | 数据库服务器 |
Kafka | 2.5.0 + | 用户生命周期管理同步中间件 |
Redis | 6 + | 高速缓存内存数据库 |
OpenLDAP | 2.2 + | 企业目录服务器 |
程序目录
MaxKey | 一级目录 | 二级目录 | 三级目录 | 说明 |
---|---|---|---|---|
README.md | 关于MaxKey项目 | |||
LICENSE | Apache License v2许可证 | |||
NOTICE | MaxKey版权声明 | |||
ReleaseNotes.txt | GA版本发布记录描述 | |||
config | 构建方式配置Jar,Docker,Standard | |||
maxkey-authentications | 登录认证 | |||
maxkey-authentication-captcha | 登录认证-验证码 | |||
maxkey-authentication-core | 登录认证-核心功能 | |||
maxkey-authentication-otp | 登录认证-令牌和一次性口令 | |||
maxkey-authentication-social | 登录认证-社交账号 | |||
maxkey-common | 通用基础包和工具类 | |||
maxkey-core | 基础包 | |||
maxkey-identitys | 身份管理 | |||
maxkey-identity-rest | REST身份管理接口 | |||
maxkey-identity-scim | SCIM2.0身份管理接口 | |||
maxkey-synchronizers | 身份同步器 | |||
maxkey-synchronizer | 同步器接口 | |||
maxkey-synchronizer-activedirectory | 微软Active Directory同步器 | |||
maxkey-synchronizer-feishu | 飞书同步器 | |||
maxkey-synchronizer-ldap | 标准LDAP同步器 | |||
maxkey-synchronizer-dingtalk | 钉钉同步器 | |||
maxkey-synchronizer-workweixin | 企业微信同步器 | |||
maxkey-lib | 使用jar包 | |||
maxkey-persistence | 数据库持久化和Kafka同步 | |||
maxkey-protocols | 认证协议实现 | |||
maxkey-protocol-authorize | 认证协议及单点注销实现 | |||
maxkey-protocol-cas | CAS认证协议实现 | |||
maxkey-protocol-extendapi | 扩展API实现 | |||
maxkey-protocol-formbased | Formbased实现,桌面认证实现开发浏览器插件实现 | |||
maxkey-protocol-jwt | JWT实现 | |||
maxkey-protocol-oauth-2.0 | OAuth 2.x,OpenID Connect实现 | |||
maxkey-protocol-saml-2.0 | SAML 2.0实现 | |||
maxkey-protocol-tokenbased | tokenbased实现 | |||
maxkey-webs | web服务 | |||
maxkey-boot-monitor | 基于Spring Boot Admin监控 | |||
maxkey-web-maxkey | 认证系统 | |||
maxkey-web-mgt | 管理系统 | |||
maxkey-web-resources | 静态资源 | |||
shellscript | Window和LINUX启动脚本 | |||
sql | 数据库MYSQL脚本,GA版本对应SQL | |||
checkstyle | 编码规范配置 | |||
build.gradle | 默认工程构建及版本控制 | |||
build_cnf.gradle | 工程构建配置脚本 | |||
gradle.properties | 版本参数配置 | |||
settings.gradle | 项目引入 | |||
gradle | gradle的配置 | |||
release.bat | 标准和Jar构建版本 | |||
release_docker.bat | docker构建版本 | |||
setEnvVars.bat | JDK及Gradle路径配置,开发人员配置 | |||
release_cnf_docker.bat | 构建Docker配置 | |||
release_cnf_jar.bat | 构建Jar配置 | |||
release_cnf_standard.bat | 构建Standard配置 | |||
eclipsePluginApply.bat | 设置IDE |
开发环境应用启动
MaxKey统一认证系统
maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java
MaxKey身份安全管理系统
maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java
标准构建Release
1.配置环境变量
setEnvVars.bat
set JAVA_HOME=D:\JavaIDE\jdk1.8.0_91
set GRADLE_HOME=D:\IDE\gradle-7.2
2.启动构建
gradlew build -x test或者release.bat
3.构建结果
构建包路径
MaxKey/build/maxkey-jars
依赖包路径
MaxKey/build/MaxKey-v(version)GA
Docker构建release
1.Docker 构建配置
release_cnf_docker.bat
2.启动构建
gradlew build jib -x test或者release_docker.bat
3.构建的结果
maxkey-web-manage/
maxkey-web-maxkey/
SpringBoot构建release
1.SpringBoot Jar 构建配置
release_cnf_jar.bat
2.启动构建
gradlew build -x test或者release.bat
3.构建的结果
maxkey-webs/maxkey-web-manage/
maxkey-webs/maxkey-web-maxkey/
问题及解决
问题1
“A cycle was detected in the build path of project: XXX”
解决方法:
Eclipse Menu -> Window -> Preferences… -> Java -> Compiler -> Building -> Building path problems -> Circular dependencies -> 将Error改成Warning
问题2
Access restriction
解决方案:
Eclipse Menu -> Window -> Preferences… -> Java -> Compiler -> Errors/Warnings界面的Deprecated and restricted API下。把Forbidden reference (access rules): 的规则由默认的Error改为Warning即可。