From 2c5c2c079d8ecc4fc7e20decb686bca6cdae2258 Mon Sep 17 00:00:00 2001 From: "Crystal.Sea" Date: Mon, 27 Sep 2021 15:19:06 +0800 Subject: [PATCH] v3.0.0GA with standard build --- build.gradle | 124 ++++++++-------------- config/build_standard.gradle | 192 ++++++++++++++--------------------- 2 files changed, 120 insertions(+), 196 deletions(-) diff --git a/build.gradle b/build.gradle index d20a549ae..2877a5c02 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,35 @@ ext { } +def libjarsmapper=[ + 'maxkey-authentication-otp' :'lib', + 'maxkey-authentication-captcha' :'lib', + 'maxkey-authentication-core' :'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-identity-rest' :'maxkey_mgt', + 'maxkey-identity-scim' :'maxkey_mgt', + 'maxkey-web-mgt' :'maxkey_mgt', + 'maxkey-synchronizers' :'maxkey_mgt', + 'maxkey-synchronizers-activedirectory' :'maxkey_mgt', + 'maxkey-synchronizers-ldap' :'maxkey_mgt', + 'maxkey-synchronizers-dingding' :'maxkey_mgt', + 'maxkey-synchronizers-workweixin' :'maxkey_mgt', + 'maxkey-boot-monitor' :'maxkey_monitor' +] configurations.all { transitive = false// 为本依赖关闭依赖传递特性 @@ -124,7 +153,7 @@ subprojects { maven { url "https://repository.apache.org/content/repositories/releases/" } mavenCentral() } - + //all dependencies dependencies { @@ -427,15 +456,21 @@ subprojects { dependsOn assemble //项目名 项目所在的group version 版本号 println "subproject " + project.name + ", group " + project.group +" , version " + project.version - + //copy into "$rootDir/build/maxkey-jars/" from "$buildDir/libs/" include '*.jar' - } - - assemble.configure { finalizedBy buildRelease } + + 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 } } //copy Dep Jars to /build/maxkey-depjars,only maxkey-common deps @@ -444,9 +479,9 @@ project('maxkey-common') { 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/maxkey_monitor", "$rootDir/build/MaxKey-v${project.version}GA/lib"]; //遍历数组,调用createDir闭包,创建目录 - paths.forEach(){path-> File dir=new File(path); if (!dir.exists()){ @@ -459,7 +494,7 @@ project('maxkey-common') { 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"; } @@ -469,90 +504,18 @@ project('maxkey-common') { //copy Dep Jars to /build/maxkey-depjars,only maxkey-boot-monitor deps project('maxkey-webs:maxkey-boot-monitor') { - task createReleaseDir(type: Copy){ - def paths = ["$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor"]; - //遍历数组,调用createDir闭包,创建目录 - - paths.forEach(){path-> - File dir=new File(path); - if (!dir.exists()){ - print("create "+path+"\n") - dir.mkdirs(); - } - }; - } - task copyDepJars(type:Copy) { dependsOn assemble //项目名 项目所在的group version 版本号 println "subproject " + project.name + ", group " + project.group +" , version " + project.version - //copy - from "$buildDir/libs/" include '*.jar' + //copy runtime from configurations.runtimeClasspath into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor"; } build.configure { finalizedBy copyDepJars } - } -project('maxkey-webs:maxkey-web-maxkey') { - - task copyDepJars (type: Copy){ - println "project copyMaxKey ."; - - from "$rootDir/build/maxkey-jars/maxkey-authentication-social-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-web-maxkey-${project.version}.jar" - into "$rootDir/build/MaxKey-v${project.version}GA/maxkey/"; - } - - //common lib jars - task copyMaxKeyLibs(type: Copy) { - from "$rootDir/build/maxkey-jars/maxkey-authentication-otp-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-authentication-captcha-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-authentication-core-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-common-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-core-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-persistence-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-authorize-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-cas-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-desktop-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-extendapi-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-formbased-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-jwt-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-oauth-2.0-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-saml-2.0-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-tokenbased-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-web-resources-${project.version}.jar" - into "$rootDir/build/MaxKey-v${project.version}GA/lib"; - } - - build.configure { finalizedBy copyDepJars } - - copyDepJars.configure { finalizedBy copyMaxKeyLibs } - -} - - -project('maxkey-webs:maxkey-web-mgt') { - - task copyDepJars (type: Copy){ - println "project copyMaxKeyMgt ."; - from "$rootDir/build/maxkey-jars/maxkey-identity-rest-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-identity-scim-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-web-mgt-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-activedirectory-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-ldap-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-dingding-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-workweixin-${project.version}.jar" - into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_mgt/"; - } - - build.configure { finalizedBy copyDepJars } -} - - tasks.register("buildRelease") { dependsOn 'copyShellScript','copyWindowsShellScript' @@ -567,7 +530,6 @@ tasks.register("copyShellScript",Copy) { from "$rootDir/shellscript/" into "$rootDir/build/MaxKey-v${project.version}GA/shellscript/"; - } tasks.register("copyWindowsShellScript",Copy) { diff --git a/config/build_standard.gradle b/config/build_standard.gradle index d20a549ae..f998d5cd3 100644 --- a/config/build_standard.gradle +++ b/config/build_standard.gradle @@ -25,6 +25,35 @@ ext { } +def libjarsmapper=[ + 'maxkey-authentication-otp' :'lib', + 'maxkey-authentication-captcha' :'lib', + 'maxkey-authentication-core' :'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-identity-rest' :'maxkey_mgt', + 'maxkey-identity-scim' :'maxkey_mgt', + 'maxkey-web-mgt' :'maxkey_mgt', + 'maxkey-synchronizers' :'maxkey_mgt', + 'maxkey-synchronizers-activedirectory' :'maxkey_mgt', + 'maxkey-synchronizers-ldap' :'maxkey_mgt', + 'maxkey-synchronizers-dingding' :'maxkey_mgt', + 'maxkey-synchronizers-workweixin' :'maxkey_mgt', + 'maxkey-boot-monitor' :'maxkey_monitor' +] configurations.all { transitive = false// 为本依赖关闭依赖传递特性 @@ -124,7 +153,7 @@ subprojects { maven { url "https://repository.apache.org/content/repositories/releases/" } mavenCentral() } - + //all dependencies dependencies { @@ -423,19 +452,25 @@ subprojects { } } - tasks.register("buildRelease",Copy) { - dependsOn assemble - //项目名 项目所在的group version 版本号 - println "subproject " + project.name + ", group " + project.group +" , version " + project.version - - //copy - into "$rootDir/build/maxkey-jars/" - from "$buildDir/libs/" - include '*.jar' - + tasks.register("buildRelease",Copy) { + dependsOn assemble + //项目名 项目所在的group version 版本号 + println "subproject " + project.name + ", group " + project.group +" , version " + project.version + + //copy + into "$rootDir/build/maxkey-jars/" + from "$buildDir/libs/" + include '*.jar' } - - assemble.configure { finalizedBy buildRelease } + + 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 } } //copy Dep Jars to /build/maxkey-depjars,only maxkey-common deps @@ -444,9 +479,9 @@ project('maxkey-common') { 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/maxkey_monitor", "$rootDir/build/MaxKey-v${project.version}GA/lib"]; //遍历数组,调用createDir闭包,创建目录 - paths.forEach(){path-> File dir=new File(path); if (!dir.exists()){ @@ -455,107 +490,35 @@ project('maxkey-common') { } }; } - - task copyDepJars (type: Copy){ - dependsOn assemble - println "copy Dep Jars to $rootDir/build/MaxKey-v${project.version}GA/lib" - - from configurations.runtimeClasspath - into "$rootDir/build/MaxKey-v${project.version}GA/lib"; - } - - build.configure { finalizedBy copyDepJars } + + 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 } } //copy Dep Jars to /build/maxkey-depjars,only maxkey-boot-monitor deps project('maxkey-webs:maxkey-boot-monitor') { - task createReleaseDir(type: Copy){ - def paths = ["$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor"]; - //遍历数组,调用createDir闭包,创建目录 - - paths.forEach(){path-> - File dir=new File(path); - if (!dir.exists()){ - print("create "+path+"\n") - dir.mkdirs(); - } - }; + task copyDepJars(type:Copy) { + dependsOn assemble + //项目名 项目所在的group version 版本号 + println "subproject " + project.name + ", group " + project.group +" , version " + project.version + //copy runtime + from configurations.runtimeClasspath + into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor"; } - - task copyDepJars(type:Copy) { - dependsOn assemble - //项目名 项目所在的group version 版本号 - println "subproject " + project.name + ", group " + project.group +" , version " + project.version - //copy - from "$buildDir/libs/" include '*.jar' - from configurations.runtimeClasspath - into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor"; - } - - build.configure { finalizedBy copyDepJars } - + + build.configure { finalizedBy copyDepJars } } -project('maxkey-webs:maxkey-web-maxkey') { - - task copyDepJars (type: Copy){ - println "project copyMaxKey ."; - - from "$rootDir/build/maxkey-jars/maxkey-authentication-social-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-web-maxkey-${project.version}.jar" - into "$rootDir/build/MaxKey-v${project.version}GA/maxkey/"; - } - - //common lib jars - task copyMaxKeyLibs(type: Copy) { - from "$rootDir/build/maxkey-jars/maxkey-authentication-otp-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-authentication-captcha-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-authentication-core-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-common-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-core-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-persistence-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-authorize-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-cas-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-desktop-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-extendapi-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-formbased-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-jwt-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-oauth-2.0-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-saml-2.0-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-protocol-tokenbased-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-web-resources-${project.version}.jar" - into "$rootDir/build/MaxKey-v${project.version}GA/lib"; - } - - build.configure { finalizedBy copyDepJars } - - copyDepJars.configure { finalizedBy copyMaxKeyLibs } - -} - - -project('maxkey-webs:maxkey-web-mgt') { - - task copyDepJars (type: Copy){ - println "project copyMaxKeyMgt ."; - from "$rootDir/build/maxkey-jars/maxkey-identity-rest-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-identity-scim-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-web-mgt-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-activedirectory-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-ldap-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-dingding-${project.version}.jar" - from "$rootDir/build/maxkey-jars/maxkey-synchronizers-workweixin-${project.version}.jar" - into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_mgt/"; - } - - build.configure { finalizedBy copyDepJars } -} - - tasks.register("buildRelease") { - dependsOn 'copyShellScript','copyWindowsShellScript' - + dependsOn 'copyShellScript','copyWindowsShellScript' + //项目名 项目所在的group version 版本号 println "Root project " + project.name + ", group " + project.group +" , version " + project.version //项目的绝对路径 to 项目的build文件绝对路径 @@ -563,17 +526,16 @@ tasks.register("buildRelease") { } tasks.register("copyShellScript",Copy) { - println "project copyMaxKeyShellScript ."; - - from "$rootDir/shellscript/" - into "$rootDir/build/MaxKey-v${project.version}GA/shellscript/"; - + 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/"; + println "project copyMaxKeyWindowsShellScript ."; + from "$rootDir/shellscript/windows" + into "$rootDir/build/MaxKey-v${project.version}GA/"; } build.configure { finalizedBy buildRelease }