开发指南

开发工具及相关软件

软件版本备注
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

  1. 配置环境变量

setEnvVars.bat

set JAVA_HOME=D:\JavaIDE\jdk1.8.0_91

set GRADLE_HOME=D:\JavaIDE\gradle-5.4.1

  1. 启动构建

release.bat

  1. 构建结果

构建包路径

MaxKey/build/maxkey-jars

依赖包路径

MaxKey/build/maxkey-depjars

Docker 构建release

  1. 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']
	}
}
  1. 启动构建

release.bat

  1. 构建的结果

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即可。