diff --git a/build.gradle b/build.gradle index 929620ca9..c0b70d578 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright [2023] [MaxKey of copyright http://www.maxkey.top] + * Copyright [2024] [MaxKey of copyright http://www.maxkey.top] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,47 +22,11 @@ defaultTasks "clean", "build" //Version define ext { - + } -def libjarsmapper=[ - 'maxkey-authentication-captcha' :'lib', - 'maxkey-authentication-core' :'lib', - 'maxkey-authentication-ip2location' :'lib', - 'maxkey-authentication-otp' :'lib', - 'maxkey-authentication-provider' :'lib', - 'maxkey-authentication-sms' :'lib', - 'maxkey-common' :'lib', - 'maxkey-core' :'lib', - 'maxkey-persistence' :'lib', - 'maxkey-protocol-authorize' :'lib', - 'maxkey-protocol-cas' :'lib', - 'maxkey-protocol-desktop' :'lib', - 'maxkey-protocol-extendapi' :'lib', - 'maxkey-protocol-formbased' :'lib', - 'maxkey-protocol-jwt' :'lib', - 'maxkey-protocol-oauth-2.0' :'lib', - 'maxkey-protocol-saml-2.0' :'lib', - 'maxkey-protocol-tokenbased' :'lib', - 'maxkey-web-resources' :'lib', - 'maxkey-authentication-social' :'maxkey', - 'maxkey-web-maxkey' :'maxkey', - 'maxkey-web-mgt' :'maxkey_mgt', - 'maxkey-synchronizer' :'maxkey_mgt', - 'maxkey-synchronizer-activedirectory' :'maxkey_mgt', - 'maxkey-synchronizer-common' :'maxkey_mgt', - 'maxkey-synchronizer-jdbc' :'maxkey_mgt', - 'maxkey-synchronizer-ldap' :'maxkey_mgt', - 'maxkey-synchronizer-dingtalk' :'maxkey_mgt', - 'maxkey-synchronizer-workweixin' :'maxkey_mgt', - 'maxkey-synchronizer-reorgdept' :'maxkey_mgt', - 'maxkey-web-openapi' :'maxkey_openapi', - 'maxkey-web-api-rest' :'maxkey_openapi', - 'maxkey-web-api-scim' :'maxkey_openapi', -] - configurations.all { - transitive = false// 为本依赖关闭依赖传递特性 + transitive = false// 为本依赖关闭依赖传递特性 } //add support for Java @@ -74,14 +38,14 @@ allprojects { //apply plugin: "findbugs" //apply plugin: "jdepend" - configurations.all { - transitive = false// 为本依赖关闭依赖传递特性 - } - //java Version - sourceCompatibility = 17 - targetCompatibility = 17 - compileJava.options.encoding = 'UTF-8' - + configurations.all { + transitive = false// 为本依赖关闭依赖传递特性 + } + //java Version + sourceCompatibility = 17 + targetCompatibility = 17 + compileJava.options.encoding = 'UTF-8' + eclipse { /*设置工程字符集*/ jdt { @@ -91,7 +55,7 @@ allprojects { prefs.append('encoding/=UTF-8') //use UTF-8 } } - } + } } buildscript { @@ -105,46 +69,55 @@ repositories { // Use 'jcenter' for resolving your dependencies. // You can declare any Maven/Ivy/file repository here. mavenCentral() + jcenter() } -// In this section you declare the dependencies for your production and test code -dependencies { - -} -subprojects { - processResources { - from ('src/main/resources') { - include 'src/main/resources/*.*' - } - } - sourceSets { - main { - java { - srcDir 'src/main/java' // 指定源码目录 - } - } - } - repositories { + +subprojects { + /* + eclipse { + 第一次时请注释这段eclipse设置,可能报错,设置工程字符集 + jdt { + File f = file('.settings/org.eclipse.core.resources.prefs') + f.write('eclipse.preferences.version=1\n') + f.append('encoding/=UTF-8') //use UTF-8 + } + } + */ + processResources { + from ('src/main/resources') { + include 'src/main/resources/*.*' + } + } + sourceSets { + main { + java { + srcDir 'src/main/java' // 指定源码目录 + } + } + } + + repositories { mavenLocal() maven { url "https://maven.aliyun.com/repository/central"} maven { url "https://maven.aliyun.com/repository/public"} - maven { url "https://repo.spring.io/plugins-release/" } + maven { url "https://repo.spring.io/plugins-release" } maven { url "https://repo.spring.io/milestone" } - maven { url "https://repo1.maven.org/maven2/" } - maven { url "https://build.shibboleth.net/nexus/content/repositories/releases/" } - maven { url "https://mvnrepository.com/repos/central/" } + maven { url "https://repo1.maven.org/maven2" } + maven { url "https://build.shibboleth.net/nexus/content/repositories/releases" } + maven { url "https://mvnrepository.com/repos/central" } maven { url "https://jcenter.bintray.com" } maven { url "https://mvn.gt.igexin.com/nexus/content/repositories/releases"} - maven { url "https://plugins.gradle.org/m2/" } - maven { url "https://oss.sonatype.org/content/repositories/releases/" } - maven { url "https://maven.repository.redhat.com/ga/" } - maven { url "https://repository.apache.org/content/repositories/releases/" } + maven { url "https://plugins.gradle.org/m2" } + maven { url "https://oss.sonatype.org/content/repositories/releases" } + maven { url "https://maven.repository.redhat.com/ga" } + maven { url "https://repository.apache.org/content/repositories/releases" } mavenCentral() } - - //all dependencies + + //all dependencies dependencies { //for Test and Compile testImplementation group: 'junit', name: 'junit', version: "${junitVersion}" @@ -447,92 +420,47 @@ subprojects { jar { - def currentTime = java.time.ZonedDateTime.now() - manifest { - attributes( + def currentTime = java.time.ZonedDateTime.now() + manifest { + attributes( "Implementation-Title": project.name, - "Implementation-Vendor": project.vendor, - "Created-By": project.author, - "Implementation-Date": currentTime, - "Implementation-Version": project.version - ) - } - } - - tasks.register("buildRelease",Copy) { + "Implementation-Vendor": project.vendor, + "Created-By": project.author, + "Implementation-Date": currentTime, + "Implementation-Version": project.version + ) + } + } + + tasks.register("buildRelease",Copy) { dependsOn assemble //项目名 项目所在的group version 版本号 println "subproject " + project.name + ", group " + project.group +" , version " + project.version //copy - into "$rootDir/build/maxkey-jars/" + into "$rootDir/build/" from "$buildDir/libs/" - include '*.jar' + include '*-boot-*.jar' } - - tasks.register("copyLibJars",Copy) { - if (libjarsmapper["${project.name}"] != null){ - into "$rootDir/build/MaxKey-v${project.version}GA/"+libjarsmapper["${project.name}"] - from "$buildDir/libs/" - include '*.jar' - } - } - assemble.configure { finalizedBy buildRelease,copyLibJars } -} + + assemble.configure { finalizedBy buildRelease } -//copy Dep Jars to /build/maxkey-depjars,only maxkey-common deps -project('maxkey-common') { - task createReleaseDir(type: Copy){ - def paths = ["$rootDir/build/MaxKey-v${project.version}GA", - "$rootDir/build/MaxKey-v${project.version}GA/maxkey", - "$rootDir/build/MaxKey-v${project.version}GA/maxkey_mgt", - "$rootDir/build/MaxKey-v${project.version}GA/lib"]; - //遍历数组,调用createDir闭包,创建目录 - paths.forEach(){path-> - File dir=new File(path); - if (!dir.exists()){ - print("create "+path+"\n") - dir.mkdirs(); - } - }; - } - - task copyDepJars (type: Copy){ - dependsOn assemble - println "copy Dep Jars to $rootDir/build/MaxKey-v${project.version}GA/lib" - //copy runtime - from configurations.runtimeClasspath - into "$rootDir/build/MaxKey-v${project.version}GA/lib"; - } - - build.configure { finalizedBy copyDepJars } } tasks.register("buildRelease") { - dependsOn 'copyShellScript','copyWindowsShellScript' - //项目名 项目所在的group version 版本号 println "Root project " + project.name + ", group " + project.group +" , version " + project.version //项目的绝对路径 to 项目的build文件绝对路径 println "Root project projectDir " + project.projectDir +" to " + project.buildDir } -tasks.register("copyShellScript",Copy) { - println "project copyMaxKeyShellScript ."; - - from "$rootDir/shellscript/" - into "$rootDir/build/MaxKey-v${project.version}GA/shellscript/"; -} - -tasks.register("copyWindowsShellScript",Copy) { - println "project copyMaxKeyWindowsShellScript ."; - from "$rootDir/shellscript/windows" - into "$rootDir/build/MaxKey-v${project.version}GA/"; -} - build.configure { - finalizedBy buildRelease - - println "" - println "Gradle version is ${GradleVersion.current().version}" + finalizedBy buildRelease + + println "" + println "Gradle version is ${GradleVersion.current().version}" +} +// In this section you declare the dependencies for your production and test code +dependencies { + } diff --git a/maxkey-webs/maxkey-web-maxkey/Dockerfile b/maxkey-webs/maxkey-web-maxkey/Dockerfile index 3d7d32138..f946edd05 100644 --- a/maxkey-webs/maxkey-web-maxkey/Dockerfile +++ b/maxkey-webs/maxkey-web-maxkey/Dockerfile @@ -1,4 +1,4 @@ -FROM adoptopenjdk:8-jre +FROM openjdk:17-jdk-alpine RUN mkdir -p /maxkey @@ -10,6 +10,6 @@ COPY ${JAR_FILE} maxkey-boot.jar EXPOSE 9527 -ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" +ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms256m -Xmx2048m -Djava.security.egd=file:/dev/./urandom" CMD sleep 60; java -jar maxkey-boot.jar $JAVA_OPTS \ No newline at end of file diff --git a/maxkey-webs/maxkey-web-maxkey/build.gradle b/maxkey-webs/maxkey-web-maxkey/build.gradle index ac7693934..ee1ab3a5e 100644 --- a/maxkey-webs/maxkey-web-maxkey/build.gradle +++ b/maxkey-webs/maxkey-web-maxkey/build.gradle @@ -1,7 +1,38 @@ +buildscript { + repositories { + maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'} + } + dependencies { + //springboot jar + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + } +} + +plugins { + id 'java' + id "io.spring.dependency-management" version "1.0.11.RELEASE" + id 'org.springframework.boot' version "${springBootVersion}" +} + +apply plugin: 'io.spring.dependency-management' + description = "maxkey-web-maxkey" -//add support for Java -apply plugin: 'java' +bootJar { + dependsOn jar + archiveBaseName = 'maxkey-boot' + version = "${project.version}-ga" + mainClass = 'org.dromara.maxkey.MaxKeyApplication' + manifest { + attributes( + "Implementation-Title": project.name, + "Implementation-Vendor": project.vendor, + "Created-By": project.author, + "Implementation-Date": java.time.ZonedDateTime.now(), + "Implementation-Version": project.version + ) + } +} dependencies { implementation project(":maxkey-common") @@ -9,12 +40,12 @@ dependencies { implementation project(":maxkey-persistence") implementation project(":maxkey-authentications:maxkey-authentication-core") + implementation project(":maxkey-authentications:maxkey-authentication-social") implementation project(":maxkey-authentications:maxkey-authentication-captcha") - implementation project(":maxkey-authentications:maxkey-authentication-ip2location") + implementation project(":maxkey-authentications:maxkey-authentication-ip2location") implementation project(":maxkey-authentications:maxkey-authentication-otp") implementation project(":maxkey-authentications:maxkey-authentication-provider") implementation project(":maxkey-authentications:maxkey-authentication-sms") - implementation project(":maxkey-authentications:maxkey-authentication-social") implementation project(":maxkey-protocols:maxkey-protocol-authorize") implementation project(":maxkey-protocols:maxkey-protocol-cas") diff --git a/maxkey-webs/maxkey-web-mgt/Dockerfile b/maxkey-webs/maxkey-web-mgt/Dockerfile index e3ae77e41..65cd377c9 100644 --- a/maxkey-webs/maxkey-web-mgt/Dockerfile +++ b/maxkey-webs/maxkey-web-mgt/Dockerfile @@ -1,4 +1,4 @@ -FROM adoptopenjdk:8-jre +FROM openjdk:17-jdk-alpine RUN mkdir -p /maxkey-mgt @@ -10,6 +10,6 @@ COPY ${JAR_FILE} maxkey-mgt-boot.jar EXPOSE 9526 -ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" +ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms256m -Xmx2048m -Djava.security.egd=file:/dev/./urandom" CMD sleep 60; java -jar maxkey-mgt-boot.jar $JAVA_OPTS \ No newline at end of file diff --git a/maxkey-webs/maxkey-web-mgt/build.gradle b/maxkey-webs/maxkey-web-mgt/build.gradle index 168ecd0d1..8302c9d65 100644 --- a/maxkey-webs/maxkey-web-mgt/build.gradle +++ b/maxkey-webs/maxkey-web-mgt/build.gradle @@ -1,8 +1,44 @@ +buildscript { + repositories { + maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'} + } + dependencies { + //springboot jar + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + } +} + +plugins { + id 'org.springframework.boot' version "${springBootVersion}" + id "io.spring.dependency-management" version "1.0.11.RELEASE" +} + description = "maxkey-web-mgt" +//springboot jar +apply plugin: 'io.spring.dependency-management' + //add support for Java apply plugin: 'java' + + +bootJar { + dependsOn jar + archiveBaseName = 'maxkey-mgt-boot' + version = "${project.version}-ga" + mainClass = 'org.dromara.maxkey.MaxKeyMgtApplication' + manifest { + attributes( + "Implementation-Title": project.name, + "Implementation-Vendor": project.vendor, + "Created-By": project.author, + "Implementation-Date": java.time.ZonedDateTime.now(), + "Implementation-Version": project.version + ) + } +} + dependencies { implementation project(":maxkey-common") implementation project(":maxkey-core") @@ -17,12 +53,8 @@ dependencies { implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0") implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0") - - //rest apis - implementation project(":maxkey-web-apis:maxkey-web-api-scim") - implementation project(":maxkey-web-apis:maxkey-web-api-rest") - - //synchronizers + + //synchronizers implementation project(":maxkey-synchronizers:maxkey-synchronizer") implementation project(":maxkey-synchronizers:maxkey-synchronizer-activedirectory") implementation project(":maxkey-synchronizers:maxkey-synchronizer-feishu") @@ -30,5 +62,4 @@ dependencies { implementation project(":maxkey-synchronizers:maxkey-synchronizer-ldap") implementation project(":maxkey-synchronizers:maxkey-synchronizer-workweixin") implementation project(":maxkey-synchronizers:maxkey-synchronizer-dingtalk") - -} \ No newline at end of file +} diff --git a/maxkey-webs/maxkey-web-openapi/Dockerfile b/maxkey-webs/maxkey-web-openapi/Dockerfile index 105df485a..276f7018c 100644 --- a/maxkey-webs/maxkey-web-openapi/Dockerfile +++ b/maxkey-webs/maxkey-web-openapi/Dockerfile @@ -1,4 +1,4 @@ -FROM adoptopenjdk:8-jre +FROM openjdk:17-jdk-alpine RUN mkdir -p /maxkey-openapi @@ -10,6 +10,6 @@ COPY ${JAR_FILE} maxkey-openapi-boot.jar EXPOSE 9525 -ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" +ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms256m -Xmx2048m -Djava.security.egd=file:/dev/./urandom" CMD sleep 60; java -jar maxkey-openapi-boot.jar $JAVA_OPTS \ No newline at end of file diff --git a/maxkey-webs/maxkey-web-openapi/build.gradle b/maxkey-webs/maxkey-web-openapi/build.gradle index 6c1939d69..ad79eee7e 100644 --- a/maxkey-webs/maxkey-web-openapi/build.gradle +++ b/maxkey-webs/maxkey-web-openapi/build.gradle @@ -1,8 +1,44 @@ +buildscript { + repositories { + maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'} + } + dependencies { + //springboot jar + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + } +} + +plugins { + id 'org.springframework.boot' version "${springBootVersion}" + id "io.spring.dependency-management" version "1.0.11.RELEASE" +} + description = "maxkey-web-openapi" +//springboot jar +apply plugin: 'io.spring.dependency-management' + //add support for Java apply plugin: 'java' + + +bootJar { + dependsOn jar + archiveBaseName = 'maxkey-openapi-boot' + version = "${project.version}-ga" + mainClass = 'org.dromara.maxkey.MaxKeyOpenApiApplication' + manifest { + attributes( + "Implementation-Title": project.name, + "Implementation-Vendor": project.vendor, + "Created-By": project.author, + "Implementation-Date": java.time.ZonedDateTime.now(), + "Implementation-Version": project.version + ) + } +} + dependencies { implementation project(":maxkey-common") implementation project(":maxkey-core") @@ -18,8 +54,7 @@ dependencies { implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0") implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0") - //rest apis + //webapis implementation project(":maxkey-web-apis:maxkey-web-api-scim") - implementation project(":maxkey-web-apis:maxkey-web-api-rest") - -} \ No newline at end of file + implementation project(":maxkey-web-apis:maxkey-web-api-rest") +}