开发指南
开发工具及相关软件
软件 | 版本 | 备注 |
---|---|---|
JDK | 1.8 + | JAVA运行及开发工具包 |
eclipse-jee | 2020-06 + | 推荐JAVA开发工具 |
Gradle | 6.5.1 + | 代码构建 |
Tomcat/tomcat-embed | 9 + | 应用服务器 |
MySQL Server | 8.0.21 + | 数据库服务器 |
Kafka | 2.5.0 + | 用户生命周期管理同步中间件 |
Redis | 6 + | 高速缓存内存数据库 |
OpenLDAP | 2.2 + | 企业目录服务器 |
程序目录
MaxKey | 一级目录 | 二级目录 | 三级目录 | 说明 |
---|---|---|---|---|
README.md | 关于MaxKey项目 | |||
LICENSE | 许可证 | |||
gradle | gradle的配置 | |||
maxkey-authentications | 登录认证 | |||
maxkey-core | 基础包 | |||
maxkey-identitys | 身份管理 | |||
maxkey-identity-kafka | kafka身份同步,和连接器Connector配合使用 | |||
maxkey-identity-rest | REST身份管理接口 | |||
maxkey-identity-scim | SCIM2.0身份管理接口 | |||
maxkey-lib | 使用jar包 | |||
maxkey-persistence | 数据库访问 | |||
maxkey-protocols | 认证协议实现 | |||
maxkey-protocol-authorize | 认证协议实现 | |||
maxkey-protocol-cas | CAS认证协议实现 | |||
maxkey-protocol-desktop | 桌面认证实现模拟键盘输入登录 | |||
maxkey-protocol-extendapi | 扩展API实现 | |||
maxkey-protocol-formbased | Formbased实现 | |||
maxkey-protocol-oauth-2.0 | oauth-2.0实现 | |||
maxkey-protocol-saml-2.0 | saml-2.0实现 | |||
maxkey-protocol-tokenbased | tokenbased实现 | |||
maxkey-web-manage | 管理系统 | |||
maxkey-web-maxkey | 认证系统 | |||
shellscript | Window和LINUX启动脚本 | |||
sql | 数据库MYSQL脚步,GA版本对应SQL | |||
checkstyle | 编码规范配置 | |||
build.gradle | 工程构建及版本控制 | |||
gradle.properties | 版本参数配置 | |||
settings.gradle | 项目引入 | |||
ReleaseNotes.txt | GA版本描述 | |||
setEnvVars.bat | JDK及Gradle路径配置,用于构建脚本,需要开发人员自行配置 | |||
release.bat | 清除历史构建版本 | |||
eclipsePluginApply.bat | 设置IDE | |||
eclipsePluginClean.bat | 清除IDE的设置 |
工程构建BuildRelease
- 配置环境变量
setEnvVars.bat
set JAVA_HOME=D:\JavaIDE\jdk1.8.0_91
set GRADLE_HOME=D:\JavaIDE\gradle-5.4.1
- 启动构建
release.bat
- 构建结果
构建包路径
MaxKey/build/maxkey-jars
依赖包路径
MaxKey/build/maxkey-depjars
Docker 构建release
- Docker 构建配置
maxkey-web-manage/build.gradle增加以下配置
plugins {
id 'com.google.cloud.tools.jib' version '2.6.0'
id 'org.springframework.boot' version '2.3.4.RELEASE'
}
jib {
from {
image = 'adoptopenjdk:11-jre-openj9'
}
to {
image = "maxkey/maxkey-mgt"
tags = ["${project.version}".toString(), 'latest']
}
container {
jvmFlags = ['-Dfile.encoding=utf-8', '-Dserver.port=80']
ports = ['80']
}
}
maxkey-web-maxkey/build.gradle增加以下配置
plugins {
id 'com.google.cloud.tools.jib' version '2.6.0'
id 'org.springframework.boot' version '2.3.4.RELEASE'
}
jib {
from {
image = 'adoptopenjdk:11-jre-openj9'
}
to {
image = "maxkey/maxkey"
tags = ["${project.version}".toString(), 'latest']
}
container {
jvmFlags = ['-Dfile.encoding=utf-8', '-Dserver.port=80']
ports = ['80']
}
}
- 启动构建
release.bat
- 构建的结果
maxkey-web-manage/
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即可。