Crystal.Sea 3 år sedan
förälder
incheckning
ec9a82b35d

+ 103 - 0
build_cnf.gradle

@@ -0,0 +1,103 @@
+/*
+ * Copyright [2021] [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.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+/*
+ * MaxKey build file was auto generated by running the Gradle release.bat
+ */
+
+defaultTasks "configBuildStd"
+
+//Version define
+ext {
+	
+}
+
+task clearBuildGradle(){
+	delete "$rootDir/build.gradle"
+	delete "$rootDir/maxkey-webs/maxkey-web-mgt/build.gradle"
+	delete "$rootDir/maxkey-webs/maxkey-web-maxkey/build.gradle"	
+}
+
+task configBuildStd(dependsOn:['clearBuildGradle']) {
+	copy {
+		from "$rootDir/maxkey-webs/maxkey-web-mgt/config/build_standard.gradle"
+		into "$rootDir/maxkey-webs/maxkey-web-mgt/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	copy {
+		from "$rootDir/maxkey-webs/maxkey-web-maxkey/config/build_standard.gradle"
+		into "$rootDir/maxkey-webs/maxkey-web-maxkey/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	copy {
+		from "$rootDir/config/build_standard.gradle"
+		into "$rootDir/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	
+	println 'Standard Build MaxKey .'
+}
+
+
+task configBuildDocker(dependsOn:['clearBuildGradle']) {
+	copy {
+		from "$rootDir/maxkey-webs/maxkey-web-mgt/config/build_docker.gradle"
+		into "$rootDir/maxkey-webs/maxkey-web-mgt/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	copy {
+		from "$rootDir/maxkey-webs/maxkey-web-maxkey/config/build_docker.gradle"
+		into "$rootDir/maxkey-webs/maxkey-web-maxkey/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	
+	copy {
+		from "$rootDir/config/build_docker.gradle"
+		into "$rootDir/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	
+	println 'Docker Build MaxKey .'
+}
+
+
+
+task configBuildJar(dependsOn:['clearBuildGradle']) {
+	copy {
+		from "$rootDir/maxkey-webs/maxkey-web-mgt/config/build_jar.gradle"
+		into "$rootDir/maxkey-webs/maxkey-web-mgt/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	
+	copy {
+		from "$rootDir/maxkey-webs/maxkey-web-maxkey/config/build_jar.gradle"
+		into "$rootDir/maxkey-webs/maxkey-web-maxkey/"
+		rename { String fileName -> 'build.gradle' }
+	}
+	
+	copy {
+		from "$rootDir/config/build_jar.gradle"
+		into "$rootDir/"
+		rename { String fileName -> 'build.gradle' }
+	}
+
+	println 'Java Jar Build MaxKey .'
+}
+
+// In this section you declare the dependencies for your production and test code
+dependencies {
+ 
+}

+ 0 - 64
build_cnf_docker.gradle

@@ -1,64 +0,0 @@
-/*
- * Copyright [2021] [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.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-/*
- * MaxKey build file was auto generated by running the Gradle release.bat
- */
-defaultTasks "configBuildDocker"
-
-//Version define
-ext {
-	
-}
-
-task clearBuildGradle(){
-	delete "$rootDir/build.gradle"
-	delete "$rootDir/release.bat"
-	delete "$rootDir/maxkey-web-manage/build.gradle"
-	delete "$rootDir/maxkey-web-maxkey/build.gradle"	
-}
-
-task configBuildDocker(dependsOn:['clearBuildGradle']) {
-	copy {
-		from "$rootDir/maxkey-web-manage/config/build_docker.gradle"
-		into "$rootDir/maxkey-web-manage/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	copy {
-		from "$rootDir/maxkey-web-maxkey/config/build_docker.gradle"
-		into "$rootDir/maxkey-web-maxkey/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	
-	copy {
-		from "$rootDir/config/build_docker.gradle"
-		into "$rootDir/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	
-	copy {
-		from "$rootDir/config/release_docker.bat"
-		into "$rootDir/"
-		rename { String fileName -> 'release.bat' }
-	}
-	
-	println 'Docker Build MaxKey .'
-}
-
-// In this section you declare the dependencies for your production and test code
-dependencies {
- 
-}

+ 0 - 64
build_cnf_jar.gradle

@@ -1,64 +0,0 @@
-/*
- * Copyright [2021] [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.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-/*
- * MaxKey build file was auto generated by running the Gradle release.bat
- */
-
-defaultTasks "configBuildJar"
-
-//Version define
-ext {
-	
-}
-
-task clearBuildGradle(){
-	delete "$rootDir/build.gradle"
-	delete "$rootDir/release.bat"
-	delete "$rootDir/maxkey-web-manage/build.gradle"
-	delete "$rootDir/maxkey-web-maxkey/build.gradle"	
-}
-
-task configBuildJar(dependsOn:['clearBuildGradle']) {
-	copy {
-		from "$rootDir/maxkey-web-manage/config/build_jar.gradle"
-		into "$rootDir/maxkey-web-manage/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	copy {
-		from "$rootDir/maxkey-web-maxkey/config/build_jar.gradle"
-		into "$rootDir/maxkey-web-maxkey/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	copy {
-		from "$rootDir/config/build_jar.gradle"
-		into "$rootDir/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	copy {
-		from "$rootDir/config/release_jar.bat"
-		into "$rootDir/"
-		rename { String fileName -> 'release.bat' }
-	}
-	
-	
-	println 'Java Jar Build MaxKey .'
-}
-
-// In this section you declare the dependencies for your production and test code
-dependencies {
- 
-}

+ 0 - 64
build_cnf_standard.gradle

@@ -1,64 +0,0 @@
-/*
- * Copyright [2021] [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.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-/*
- * MaxKey build file was auto generated by running the Gradle release.bat
- */
-
-defaultTasks "configBuildStd"
-
-//Version define
-ext {
-	
-}
-
-task clearBuildGradle(){
-	delete "$rootDir/build.gradle"
-	delete "$rootDir/release.bat"
-	delete "$rootDir/maxkey-web-manage/build.gradle"
-	delete "$rootDir/maxkey-web-maxkey/build.gradle"	
-}
-
-task configBuildStd(dependsOn:['clearBuildGradle']) {
-	copy {
-		from "$rootDir/maxkey-web-manage/config/build_standard.gradle"
-		into "$rootDir/maxkey-web-manage/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	copy {
-		from "$rootDir/maxkey-web-maxkey/config/build_standard.gradle"
-		into "$rootDir/maxkey-web-maxkey/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	copy {
-		from "$rootDir/config/build_standard.gradle"
-		into "$rootDir/"
-		rename { String fileName -> 'build.gradle' }
-	}
-	
-	copy {
-		from "$rootDir/config/release_standard.bat"
-		into "$rootDir/"
-		rename { String fileName -> 'release.bat' }
-	}
-	
-	println 'Standard Build MaxKey .'
-}
-
-// In this section you declare the dependencies for your production and test code
-dependencies {
- 
-}

+ 121 - 84
config/build_docker.gradle

@@ -121,8 +121,8 @@ subprojects {
 	//all dependencies
 	dependencies {  
 		//for Test and Compile
-		 testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
-    	 compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
+         testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
+         compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
          testImplementation group: 'org.mockito', name: 'mockito-all', version: "${mockitoallVersion}"
          testImplementation group: 'xmlunit', name: 'xmlunit', version: "${xmlunitVersion}"
 
@@ -145,11 +145,13 @@ subprojects {
          implementation  group: 'commons-httpclient', name: 'commons-httpclient', version: "${commonshttpclientVersion}"
          implementation  group: 'commons-fileupload', name: 'commons-fileupload', version: "${commonsfileuploadVersion}"
          implementation  group: 'org.apache.commons', name: 'commons-email', version: "${commonsemailVersion}"
+         implementation  group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: "${httpasyncclientVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpcore', version: "${httpcoreVersion}"
+         implementation  group: 'org.apache.httpcomponents', name: 'httpcore-nio', version: "${httpcoreVersion}"
          implementation  group: 'org.apache.velocity', name: 'velocity', version: "${velocityVersion}"
          implementation  group: 'velocity', name: 'velocity-dep', version: "${velocitydepVersion}"
          implementation  group: 'org.freemarker', name: 'freemarker', version: "${freemarkerVersion}"
@@ -161,21 +163,23 @@ subprojects {
          implementation  group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}"
          //implementation  group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: "${notyetcommonssslVersion}"
          //tomcat embed Core Tomcat implementation
-    	 implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}"
-    	 //JULI logging implementation for embedded Tomcat
-    	 implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}"
-   		 //apache logs
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}"
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-el', version: "${tomcatVersion}"
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-websocket', version: "${tomcatVersion}"
+         //JULI logging implementation for embedded Tomcat
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}"
+         //apache logs
          implementation  group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}"
          implementation  group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
-		//logs
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
+        //logs
          implementation  group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
          implementation  group: 'org.jboss.logging', name: 'jboss-logging', version: "${jbossloggingVersion}"
-		 //spring
+         //spring
          implementation  group: 'org.springframework', name: 'spring-aop', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-beans', version: "${springVersion}"
@@ -185,7 +189,7 @@ subprojects {
          implementation  group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-expression', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}"
-         //implementation  group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
+         implementation  group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-jms', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}"
@@ -193,19 +197,19 @@ subprojects {
          implementation  group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-tx', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-web', version: "${springVersion}"
-         //implementation  group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
+         implementation  group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}"
-		 testImplementation  group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
-		 
-		 //kafka support
-		 // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
-		 implementation  group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}"
-		 // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
-		 implementation  group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}"
-		 // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
-		 implementation  group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}"
-		 
+         testImplementation  group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
+         
+         //kafka support
+         // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+         implementation  group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}"
+         // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
+         implementation  group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}"
+         // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
+         implementation  group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}"
+         
          //spring-security
          implementation  group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}"
          implementation  group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}"
@@ -218,21 +222,44 @@ subprojects {
          implementation  group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-json', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis-reactive', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: "${springBootVersion}"
+         
          testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:  "${springBootVersion}"
+         //spring-boot-admin
+         implementation group: 'de.codecentric', name: 'spring-boot-admin-client', version: "${springbootadminVersion}"
+         implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-client', version: "${springbootadminVersion}"
          //spring-data
          implementation  group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
          implementation  group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}"
-		 implementation  group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
+         implementation  group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
          //spring-session
          implementation  group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
          implementation  group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
          
          implementation  group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}"
          implementation  group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}"
+         //spring cloud
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-starter-bootstrap', version: "${springcloudVersion}"
+         //spring-cloud-alibaba
+         implementation  group: 'com.alibaba.spring', name: 'spring-context-support', version: "${springcloudalibabaspringVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-commons', version: "${springcloudalibabaVersion}"
+         //alibaba nacos
+         implementation  group: 'com.alibaba.nacos', name: 'nacos-client', version: "${alibabanacosclientVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: "${springcloudalibabaVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: "${springcloudalibabaVersion}"
+         
          //saml 
          implementation  group: 'org.opensaml', name: 'opensaml', version: "${opensamlVersion}"
          implementation  group: 'org.opensaml', name: 'openws', version: "${openwsVersion}"
@@ -253,16 +280,19 @@ subprojects {
          // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
          // for mybatis-jpa-extra
          implementation  group: 'org.eclipse.persistence', name: 'javax.persistence', version: "${javaxpersistenceVersion}"
+         implementation  group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.0.0'
+         implementation  group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: "${jakartaannotationVersion}"
+         implementation  group: 'jakarta.validation', name: 'jakarta.validation-api', version: "${jakartavalidationapiVersion}"
          implementation  group: 'javax.activation', name: 'activation', version: "${activationVersion}"
          implementation  group: 'javax.annotation', name: 'javax.annotation-api', version: "${javaxannotationapiVersion}"
          implementation  group: 'javax.transaction', name: 'jta', version: "${jtaVersion}"
          implementation  group: 'javax.transaction', name: 'javax.transaction-api', version: "${javaxtransactionapiVersion}"
          implementation  group: 'javax.validation', name: 'validation-api', version: "${validationapiVersion}"
          implementation  group: 'javax.xml', name: 'jsr173', version: "${jsr173Version}"
-		 implementation  group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: "${jaxbxjcVersion}"
+         implementation  group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: "${jaxbxjcVersion}"
          //crypto
          implementation  group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}"
          implementation  group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}"
@@ -280,17 +310,19 @@ subprojects {
          implementation  group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: "${szxcvbnVersion}"
          //quartz
          implementation  group: 'org.quartz-scheduler', name: 'quartz', version: "${quartzVersion}"
-		 //database
-		 implementation  group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}"
-		 implementation  group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}"
-		 implementation  group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
-		 implementation  group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
+         //database
+         implementation  group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}"
+         implementation  group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}"
+         implementation  group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
+         implementation  group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
          implementation  group: 'redis.clients', name: 'jedis', version: "${jedisVersion}"
          implementation  group: 'org.ehcache', name: 'ehcache', version: "${ehcacheVersion}"
-		 //mybatis
+         //implementation  group: 'org.liquibase', name: 'liquibase-core', version: '4.3.5'
+         
+         //mybatis
          implementation  group: 'org.mybatis', name: 'mybatis', version: "${mybatisVersion}"
          implementation  group: 'org.mybatis', name: 'mybatis-spring', version: "${mybatisspringVersion}"
-		 //hibernate
+         //hibernate
          implementation  group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}"
          implementation  group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}"
          implementation  group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}"
@@ -307,61 +339,66 @@ subprojects {
          implementation  group: 'aopalliance', name: 'aopalliance', version: "${aopallianceVersion}"
          implementation  group: 'org.aspectj', name: 'aspectjtools', version: "${aspectjtoolsVersion}"
          implementation  group: 'dom4j', name: 'dom4j', version: "${dom4jVersion}"
-		 implementation  group: 'xalan', name: 'serializer', version: "${serializerVersion}"
-		 implementation  group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}"
-		 implementation  group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}"
-		 implementation  group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}"
-		 implementation  group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}"
-		 implementation  group: 'org.passay', name: 'passay', version: "${passayVersion}"
-		 implementation  group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
-		 implementation  group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
-		 implementation  group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
-		  //阿里云
-    	 implementation  group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
-    	 //腾讯云
-    	 implementation  group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
+         implementation  group: 'xalan', name: 'serializer', version: "${serializerVersion}"
+         implementation  group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}"
+         implementation  group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}"
+         implementation  group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}"
+         implementation  group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}"
+         implementation  group: 'org.passay', name: 'passay', version: "${passayVersion}"
+         implementation  group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
+         implementation  group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
+         implementation  group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
+         implementation  group: 'org.reflections', name: 'reflections', version: '0.9.11'
+         implementation  group: 'io.prometheus', name: 'simpleclient', version: '0.5.0'
+         
+          //阿里云
+         implementation  group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
+         //腾讯云
+         implementation  group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
          //json
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}"
+         implementation  group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}"
+         implementation  group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}"
-		 implementation  group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
-		 //docs
-		 implementation  group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
-		 implementation  group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
-		 implementation  group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
-		 //springfox
-		 implementation  group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
-		 //knife4j
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
-   		
-   		 //local jars
-    	 implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
+         implementation  group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
+         //docs
+         implementation  group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
+         implementation  group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
+         implementation  group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
+         //springfox
+         implementation  group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
+         //knife4j
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
+        
+         //local jars
+         implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
     }
     
     jar {  

+ 121 - 84
config/build_jar.gradle

@@ -121,8 +121,8 @@ subprojects {
 	//all dependencies
 	dependencies {  
 		//for Test and Compile
-		 testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
-    	 compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
+         testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
+         compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
          testImplementation group: 'org.mockito', name: 'mockito-all', version: "${mockitoallVersion}"
          testImplementation group: 'xmlunit', name: 'xmlunit', version: "${xmlunitVersion}"
 
@@ -145,11 +145,13 @@ subprojects {
          implementation  group: 'commons-httpclient', name: 'commons-httpclient', version: "${commonshttpclientVersion}"
          implementation  group: 'commons-fileupload', name: 'commons-fileupload', version: "${commonsfileuploadVersion}"
          implementation  group: 'org.apache.commons', name: 'commons-email', version: "${commonsemailVersion}"
+         implementation  group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: "${httpasyncclientVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpcore', version: "${httpcoreVersion}"
+         implementation  group: 'org.apache.httpcomponents', name: 'httpcore-nio', version: "${httpcoreVersion}"
          implementation  group: 'org.apache.velocity', name: 'velocity', version: "${velocityVersion}"
          implementation  group: 'velocity', name: 'velocity-dep', version: "${velocitydepVersion}"
          implementation  group: 'org.freemarker', name: 'freemarker', version: "${freemarkerVersion}"
@@ -161,21 +163,23 @@ subprojects {
          implementation  group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}"
          //implementation  group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: "${notyetcommonssslVersion}"
          //tomcat embed Core Tomcat implementation
-    	 implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}"
-    	 //JULI logging implementation for embedded Tomcat
-    	 implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}"
-   		 //apache logs
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}"
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-el', version: "${tomcatVersion}"
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-websocket', version: "${tomcatVersion}"
+         //JULI logging implementation for embedded Tomcat
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}"
+         //apache logs
          implementation  group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}"
          implementation  group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
-		//logs
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
+        //logs
          implementation  group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
          implementation  group: 'org.jboss.logging', name: 'jboss-logging', version: "${jbossloggingVersion}"
-		 //spring
+         //spring
          implementation  group: 'org.springframework', name: 'spring-aop', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-beans', version: "${springVersion}"
@@ -185,7 +189,7 @@ subprojects {
          implementation  group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-expression', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}"
-         //implementation  group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
+         implementation  group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-jms', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}"
@@ -193,19 +197,19 @@ subprojects {
          implementation  group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-tx', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-web', version: "${springVersion}"
-         //implementation  group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
+         implementation  group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}"
-		 testImplementation  group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
-		 
-		 //kafka support
-		 // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
-		 implementation  group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}"
-		 // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
-		 implementation  group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}"
-		 // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
-		 implementation  group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}"
-		 
+         testImplementation  group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
+         
+         //kafka support
+         // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+         implementation  group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}"
+         // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
+         implementation  group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}"
+         // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
+         implementation  group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}"
+         
          //spring-security
          implementation  group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}"
          implementation  group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}"
@@ -218,21 +222,44 @@ subprojects {
          implementation  group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-json', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis-reactive', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: "${springBootVersion}"
+         
          testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:  "${springBootVersion}"
+         //spring-boot-admin
+         implementation group: 'de.codecentric', name: 'spring-boot-admin-client', version: "${springbootadminVersion}"
+         implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-client', version: "${springbootadminVersion}"
          //spring-data
          implementation  group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
          implementation  group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}"
-		 implementation  group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
+         implementation  group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
          //spring-session
          implementation  group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
          implementation  group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
          
          implementation  group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}"
          implementation  group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}"
+         //spring cloud
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-starter-bootstrap', version: "${springcloudVersion}"
+         //spring-cloud-alibaba
+         implementation  group: 'com.alibaba.spring', name: 'spring-context-support', version: "${springcloudalibabaspringVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-commons', version: "${springcloudalibabaVersion}"
+         //alibaba nacos
+         implementation  group: 'com.alibaba.nacos', name: 'nacos-client', version: "${alibabanacosclientVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: "${springcloudalibabaVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: "${springcloudalibabaVersion}"
+         
          //saml 
          implementation  group: 'org.opensaml', name: 'opensaml', version: "${opensamlVersion}"
          implementation  group: 'org.opensaml', name: 'openws', version: "${openwsVersion}"
@@ -253,16 +280,19 @@ subprojects {
          // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
          // for mybatis-jpa-extra
          implementation  group: 'org.eclipse.persistence', name: 'javax.persistence', version: "${javaxpersistenceVersion}"
+         implementation  group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.0.0'
+         implementation  group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: "${jakartaannotationVersion}"
+         implementation  group: 'jakarta.validation', name: 'jakarta.validation-api', version: "${jakartavalidationapiVersion}"
          implementation  group: 'javax.activation', name: 'activation', version: "${activationVersion}"
          implementation  group: 'javax.annotation', name: 'javax.annotation-api', version: "${javaxannotationapiVersion}"
          implementation  group: 'javax.transaction', name: 'jta', version: "${jtaVersion}"
          implementation  group: 'javax.transaction', name: 'javax.transaction-api', version: "${javaxtransactionapiVersion}"
          implementation  group: 'javax.validation', name: 'validation-api', version: "${validationapiVersion}"
          implementation  group: 'javax.xml', name: 'jsr173', version: "${jsr173Version}"
-		 implementation  group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: "${jaxbxjcVersion}"
+         implementation  group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: "${jaxbxjcVersion}"
          //crypto
          implementation  group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}"
          implementation  group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}"
@@ -280,17 +310,19 @@ subprojects {
          implementation  group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: "${szxcvbnVersion}"
          //quartz
          implementation  group: 'org.quartz-scheduler', name: 'quartz', version: "${quartzVersion}"
-		 //database
-		 implementation  group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}"
-		 implementation  group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}"
-		 implementation  group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
-		 implementation  group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
+         //database
+         implementation  group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}"
+         implementation  group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}"
+         implementation  group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
+         implementation  group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
          implementation  group: 'redis.clients', name: 'jedis', version: "${jedisVersion}"
          implementation  group: 'org.ehcache', name: 'ehcache', version: "${ehcacheVersion}"
-		 //mybatis
+         //implementation  group: 'org.liquibase', name: 'liquibase-core', version: '4.3.5'
+         
+         //mybatis
          implementation  group: 'org.mybatis', name: 'mybatis', version: "${mybatisVersion}"
          implementation  group: 'org.mybatis', name: 'mybatis-spring', version: "${mybatisspringVersion}"
-		 //hibernate
+         //hibernate
          implementation  group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}"
          implementation  group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}"
          implementation  group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}"
@@ -307,61 +339,66 @@ subprojects {
          implementation  group: 'aopalliance', name: 'aopalliance', version: "${aopallianceVersion}"
          implementation  group: 'org.aspectj', name: 'aspectjtools', version: "${aspectjtoolsVersion}"
          implementation  group: 'dom4j', name: 'dom4j', version: "${dom4jVersion}"
-		 implementation  group: 'xalan', name: 'serializer', version: "${serializerVersion}"
-		 implementation  group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}"
-		 implementation  group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}"
-		 implementation  group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}"
-		 implementation  group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}"
-		 implementation  group: 'org.passay', name: 'passay', version: "${passayVersion}"
-		 implementation  group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
-		 implementation  group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
-		 implementation  group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
-		  //阿里云
-    	 implementation  group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
-    	 //腾讯云
-    	 implementation  group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
+         implementation  group: 'xalan', name: 'serializer', version: "${serializerVersion}"
+         implementation  group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}"
+         implementation  group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}"
+         implementation  group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}"
+         implementation  group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}"
+         implementation  group: 'org.passay', name: 'passay', version: "${passayVersion}"
+         implementation  group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
+         implementation  group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
+         implementation  group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
+         implementation  group: 'org.reflections', name: 'reflections', version: '0.9.11'
+         implementation  group: 'io.prometheus', name: 'simpleclient', version: '0.5.0'
+         
+          //阿里云
+         implementation  group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
+         //腾讯云
+         implementation  group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
          //json
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}"
+         implementation  group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}"
+         implementation  group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}"
-		 implementation  group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
-		 //docs
-		 implementation  group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
-		 implementation  group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
-		 implementation  group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
-		 //springfox
-		 implementation  group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
-		 //knife4j
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
-   		
-   		 //local jars
-    	 implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
+         implementation  group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
+         //docs
+         implementation  group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
+         implementation  group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
+         implementation  group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
+         //springfox
+         implementation  group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
+         //knife4j
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
+        
+         //local jars
+         implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
     }
     
     jar {  

+ 313 - 212
config/build_standard.gradle

@@ -22,12 +22,12 @@ defaultTasks "clean", "build"
 
 //Version define
 ext {
-	
+    
 }
 
 
 configurations.all {
-	transitive = false// 为本依赖关闭依赖传递特性
+    transitive = false// 为本依赖关闭依赖传递特性
 }
 
 //add support for Java
@@ -39,23 +39,23 @@ allprojects {
     //apply plugin: "findbugs"
     //apply plugin: "jdepend"
     
-	configurations.all {
-		transitive = false// 为本依赖关闭依赖传递特性
-	}	
-	//java Version
-	sourceCompatibility = 1.8
-	targetCompatibility	= 1.8
-	compileJava.options.encoding = 'UTF-8'
-	/*
-	eclipse {
-		第一次时请注释这段eclipse设置,可能报错,设置工程字符集
-		jdt  {
-		    File f = file('.settings/org.eclipse.core.resources.prefs')
-		    f.write('eclipse.preferences.version=1\n')
-		    f.append('encoding/<project>=UTF-8') //use UTF-8
-		}
-	}
-	*/
+    configurations.all {
+        transitive = false// 为本依赖关闭依赖传递特性
+    }   
+    //java Version
+    sourceCompatibility = 1.8
+    targetCompatibility = 1.8
+    compileJava.options.encoding = 'UTF-8'
+    
+    eclipse {
+       /* 第一次时请注释这段eclipse设置,可能报错,设置工程字符集
+        jdt  {
+            File f = file('.settings/org.eclipse.core.resources.prefs')
+            f.write('eclipse.preferences.version=1\n')
+            f.append('encoding/<project>=UTF-8') //use UTF-8
+        }*/
+    }
+    
 
     
 }
@@ -74,56 +74,63 @@ repositories {
     
 }
 
+// In this section you declare the dependencies for your production and test code
+dependencies {
+ 
+}
 
 
 subprojects {
-	/*
-	eclipse {
-		第一次时请注释这段eclipse设置,可能报错,设置工程字符集
-		jdt  {
-		    File f = file('.settings/org.eclipse.core.resources.prefs')
-		    f.write('eclipse.preferences.version=1\n')
-		    f.append('encoding/<project>=UTF-8') //use UTF-8
-		}
-	}
-	*/
-	processResources {
-		from ('src/main/resources') {
-	    	include 'src/main/resources/*.*'
-	  	}
-	}
-	
-	sourceSets {
-	    main {
-	        java {
-	            srcDir 'src/main/java' // 指定源码目录
-	        }
-	       
-	   	 }
-	}
-	
-	repositories {  
+    /*
+    eclipse {
+        第一次时请注释这段eclipse设置,可能报错,设置工程字符集
+        jdt  {
+            File f = file('.settings/org.eclipse.core.resources.prefs')
+            f.write('eclipse.preferences.version=1\n')
+            f.append('encoding/<project>=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/nexus/content/groups/public/'}
+        maven { url "https://maven.aliyun.com/repository/central/"}
+        maven { url "https://maven.aliyun.com/repository/public/"}
+        maven { url "https://maven.aliyun.com/repository/spring/"}
         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://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/" }
-		mavenCentral()
+        maven { url "https://repository.apache.org/content/repositories/releases/" }
+        mavenCentral()
     }  
-	
-	//all dependencies
-	dependencies {  
-		//for Test and Compile
-		 testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
-    	 compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
+    
+    //all dependencies
+    dependencies {
+        
+        //for Test and Compile
+         testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
+         compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
          testImplementation group: 'org.mockito', name: 'mockito-all', version: "${mockitoallVersion}"
          testImplementation group: 'xmlunit', name: 'xmlunit', version: "${xmlunitVersion}"
 
@@ -146,11 +153,13 @@ subprojects {
          implementation  group: 'commons-httpclient', name: 'commons-httpclient', version: "${commonshttpclientVersion}"
          implementation  group: 'commons-fileupload', name: 'commons-fileupload', version: "${commonsfileuploadVersion}"
          implementation  group: 'org.apache.commons', name: 'commons-email', version: "${commonsemailVersion}"
+         implementation  group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: "${httpasyncclientVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
          implementation  group: 'org.apache.httpcomponents', name: 'httpcore', version: "${httpcoreVersion}"
+         implementation  group: 'org.apache.httpcomponents', name: 'httpcore-nio', version: "${httpcoreVersion}"
          implementation  group: 'org.apache.velocity', name: 'velocity', version: "${velocityVersion}"
          implementation  group: 'velocity', name: 'velocity-dep', version: "${velocitydepVersion}"
          implementation  group: 'org.freemarker', name: 'freemarker', version: "${freemarkerVersion}"
@@ -162,21 +171,23 @@ subprojects {
          implementation  group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}"
          //implementation  group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: "${notyetcommonssslVersion}"
          //tomcat embed Core Tomcat implementation
-    	 implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}"
-    	 //JULI logging implementation for embedded Tomcat
-    	 implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}"
-   		 //apache logs
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}"
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-el', version: "${tomcatVersion}"
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-websocket', version: "${tomcatVersion}"
+         //JULI logging implementation for embedded Tomcat
+         implementation  group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}"
+         //apache logs
          implementation  group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}"
          implementation  group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
-		 implementation  group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
-		//logs
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
+         implementation  group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
+        //logs
          implementation  group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
          implementation  group: 'org.jboss.logging', name: 'jboss-logging', version: "${jbossloggingVersion}"
-		 //spring
+         //spring
          implementation  group: 'org.springframework', name: 'spring-aop', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-beans', version: "${springVersion}"
@@ -186,7 +197,7 @@ subprojects {
          implementation  group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-expression', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}"
-         //implementation  group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
+         implementation  group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-jms', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}"
@@ -194,19 +205,19 @@ subprojects {
          implementation  group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-tx', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-web', version: "${springVersion}"
-         //implementation  group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
+         implementation  group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
          implementation  group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}"
          //implementation  group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}"
-		 testImplementation  group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
-		 
-		 //kafka support
-		 // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
-		 implementation  group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}"
-		 // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
-		 implementation  group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}"
-		 // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
-		 implementation  group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}"
-		 
+         testImplementation  group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
+         
+         //kafka support
+         // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+         implementation  group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}"
+         // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
+         implementation  group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}"
+         // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
+         implementation  group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}"
+         
          //spring-security
          implementation  group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}"
          implementation  group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}"
@@ -219,21 +230,44 @@ subprojects {
          implementation  group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-json', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:  "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:  "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: "${springBootVersion}"
          implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis-reactive', version: "${springBootVersion}"
+         implementation  group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: "${springBootVersion}"
+         
          testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:  "${springBootVersion}"
+         //spring-boot-admin
+         implementation group: 'de.codecentric', name: 'spring-boot-admin-client', version: "${springbootadminVersion}"
+         implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-client', version: "${springbootadminVersion}"
          //spring-data
          implementation  group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
          implementation  group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}"
-		 implementation  group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
+         implementation  group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
          //spring-session
          implementation  group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
          implementation  group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
          
          implementation  group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}"
          implementation  group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}"
+         //spring cloud
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: "${springcloudVersion}"
+         implementation  group: 'org.springframework.cloud', name: 'spring-cloud-starter-bootstrap', version: "${springcloudVersion}"
+         //spring-cloud-alibaba
+         implementation  group: 'com.alibaba.spring', name: 'spring-context-support', version: "${springcloudalibabaspringVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-commons', version: "${springcloudalibabaVersion}"
+         //alibaba nacos
+         implementation  group: 'com.alibaba.nacos', name: 'nacos-client', version: "${alibabanacosclientVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: "${springcloudalibabaVersion}"
+         implementation  group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: "${springcloudalibabaVersion}"
+         
          //saml 
          implementation  group: 'org.opensaml', name: 'opensaml', version: "${opensamlVersion}"
          implementation  group: 'org.opensaml', name: 'openws', version: "${openwsVersion}"
@@ -254,16 +288,19 @@ subprojects {
          // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
          // for mybatis-jpa-extra
          implementation  group: 'org.eclipse.persistence', name: 'javax.persistence', version: "${javaxpersistenceVersion}"
+         implementation  group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.0.0'
+         implementation  group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: "${jakartaannotationVersion}"
+         implementation  group: 'jakarta.validation', name: 'jakarta.validation-api', version: "${jakartavalidationapiVersion}"
          implementation  group: 'javax.activation', name: 'activation', version: "${activationVersion}"
          implementation  group: 'javax.annotation', name: 'javax.annotation-api', version: "${javaxannotationapiVersion}"
          implementation  group: 'javax.transaction', name: 'jta', version: "${jtaVersion}"
          implementation  group: 'javax.transaction', name: 'javax.transaction-api', version: "${javaxtransactionapiVersion}"
          implementation  group: 'javax.validation', name: 'validation-api', version: "${validationapiVersion}"
          implementation  group: 'javax.xml', name: 'jsr173', version: "${jsr173Version}"
-		 implementation  group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}"
-		 implementation  group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: "${jaxbxjcVersion}"
+         implementation  group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}"
+         implementation  group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: "${jaxbxjcVersion}"
          //crypto
          implementation  group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}"
          implementation  group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}"
@@ -281,17 +318,19 @@ subprojects {
          implementation  group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: "${szxcvbnVersion}"
          //quartz
          implementation  group: 'org.quartz-scheduler', name: 'quartz', version: "${quartzVersion}"
-		 //database
-		 implementation  group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}"
-		 implementation  group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}"
-		 implementation  group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
-		 implementation  group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
+         //database
+         implementation  group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}"
+         implementation  group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}"
+         implementation  group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
+         implementation  group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
          implementation  group: 'redis.clients', name: 'jedis', version: "${jedisVersion}"
          implementation  group: 'org.ehcache', name: 'ehcache', version: "${ehcacheVersion}"
-		 //mybatis
+         //implementation  group: 'org.liquibase', name: 'liquibase-core', version: '4.3.5'
+         
+         //mybatis
          implementation  group: 'org.mybatis', name: 'mybatis', version: "${mybatisVersion}"
          implementation  group: 'org.mybatis', name: 'mybatis-spring', version: "${mybatisspringVersion}"
-		 //hibernate
+         //hibernate
          implementation  group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}"
          implementation  group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}"
          implementation  group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}"
@@ -308,99 +347,104 @@ subprojects {
          implementation  group: 'aopalliance', name: 'aopalliance', version: "${aopallianceVersion}"
          implementation  group: 'org.aspectj', name: 'aspectjtools', version: "${aspectjtoolsVersion}"
          implementation  group: 'dom4j', name: 'dom4j', version: "${dom4jVersion}"
-		 implementation  group: 'xalan', name: 'serializer', version: "${serializerVersion}"
-		 implementation  group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}"
-		 implementation  group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}"
-		 implementation  group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}"
-		 implementation  group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}"
-		 implementation  group: 'org.passay', name: 'passay', version: "${passayVersion}"
-		 implementation  group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
-		 implementation  group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
-		 implementation  group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
-		  //阿里云
-    	 implementation  group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
-    	 //腾讯云
-    	 implementation  group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
+         implementation  group: 'xalan', name: 'serializer', version: "${serializerVersion}"
+         implementation  group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}"
+         implementation  group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}"
+         implementation  group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}"
+         implementation  group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}"
+         implementation  group: 'org.passay', name: 'passay', version: "${passayVersion}"
+         implementation  group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
+         implementation  group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
+         implementation  group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
+         implementation  group: 'org.reflections', name: 'reflections', version: '0.9.11'
+         implementation  group: 'io.prometheus', name: 'simpleclient', version: '0.5.0'
+         
+          //阿里云
+         implementation  group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
+         //腾讯云
+         implementation  group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
          //json
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}"
+         implementation  group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}"
+         implementation  group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: "${jacksonVersion}"
          implementation  group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}"
-		 implementation  group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
-		 //docs
-		 implementation  group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
-		 implementation  group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
-		 implementation  group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
-		 implementation  group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
-		 //springfox
-		 implementation  group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
-		 implementation  group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
-		 //knife4j
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
-		 implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
-   		
-   		 //local jars
-    	 implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
+         implementation  group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
+         //docs
+         implementation  group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
+         implementation  group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
+         implementation  group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
+         implementation  group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
+         //springfox
+         implementation  group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
+         implementation  group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
+         //knife4j
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
+         implementation  group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
+        
+         //local jars
+         implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
     }
     
     jar {  
 
-	    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
-	           )
-	    }
-	}
-	
-	task copyjar2Release(type: Copy) {
-		println "$buildDir/libs/ to $rootDir/build/maxkey-jars/"
-		into "$rootDir/build/maxkey-jars/"
-	    from "$buildDir/libs/"
-	    include '*.jar'
-	}
-
-	task buildRelease(dependsOn:['build','jar'])  {
+        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) {
+		
 		//项目名 项目所在的group version 版本号
-		println  "project " + project.name + ", group " + project.group +" , version " + project.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 }
 }
 
 //copy Dep Jars to /build/maxkey-depjars,only maxkey-common deps
 project('maxkey-common')  {
-	task copyDepJars(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闭包,创建目录
-		
+    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()){
@@ -408,68 +452,125 @@ project('maxkey-common')  {
                 dir.mkdirs();
             }
         };
-        
+    }
+	
+	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 copyMaxKey(type: Copy) {
-    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/";
-}
+//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 copyMaxKeyMgt(type: Copy) {
-	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-manage-${project.version}.jar"
-	into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_mgt/";
+	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 }
+	
 }
 
-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"
-	into "$rootDir/build/MaxKey-v${project.version}GA/lib";
+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 }
+	
 }
 
-task copyMaxKeyShellScript(type: Copy) {
-	from "$rootDir/shellscript"
-	into "$rootDir/build/MaxKey-v${project.version}GA/";
+
+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 }
 }
 
-task buildReleaseCopy(dependsOn:['copyMaxKey','copyMaxKeyMgt','copyMaxKeyLibs','copyMaxKeyShellScript'])  {
-	//项目名
-	println  "project ReleaseCopy  ."
 
+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
 }
 
-task buildRelease(dependsOn:['build'])  {
-	//项目名 项目所在的group version 版本号
-	println  "project " + project.name + ", group " + project.group +" , version " + project.version
-	//项目的绝对路径
-	println "project projectDir " + project.projectDir
-	//项目的build文件绝对路径
-	println "project buildDir   " + project.buildDir
-
+tasks.register("copyShellScript",Copy) {
+	println  "project copyMaxKeyShellScript .";
+	
+	from "$rootDir/shellscript/"
+	into "$rootDir/build/MaxKey-v${project.version}GA/shellscript/";
 }
 
-// In this section you declare the dependencies for your production and test code
-dependencies {
- 
+tasks.register("copyWindowsShellScript",Copy) {
+	println  "project copyMaxKeyWindowsShellScript .";
+	from "$rootDir/shellscript/windows"
+	into "$rootDir/build/MaxKey-v${project.version}GA/";
 }
+
+build.configure { finalizedBy buildRelease }

+ 0 - 32
config/release_docker.bat

@@ -1,32 +0,0 @@
-call setEnvVars.bat
-
-set START_TIME="%date:~0,10% %time:~0,2%:%time:~3,5%"
-echo start time %START_TIME%
-call %JAVA_HOME%/bin/java -version
-
-call %GRADLE_HOME%/bin/gradle -version
-
-call %GRADLE_HOME%/bin/gradle -q projects
-
-echo start clean . . .
-
-call %GRADLE_HOME%/bin/gradle clean
-
-echo start clean complete . 
-
-call %GRADLE_HOME%/bin/gradle buildRelease
-
-call %GRADLE_HOME%/bin/gradle jib
-
-cd build
-rd /q /s libs
-
-rd /q /s tmp
-
-cd ..
-
-set END_TIME="%date:~0,10% %time:~0,2%:%time:~3,5%"
-
-echo Build Release start at %START_TIME%  complete at %END_TIME%.
-
-pause

+ 0 - 30
config/release_jar.bat

@@ -1,30 +0,0 @@
-call setEnvVars.bat
-
-set START_TIME="%date:~0,10% %time:~0,2%:%time:~3,5%"
-echo start time %START_TIME%
-call %JAVA_HOME%/bin/java -version
-
-call %GRADLE_HOME%/bin/gradle -version
-
-call %GRADLE_HOME%/bin/gradle -q projects
-
-echo start clean . . .
-
-call %GRADLE_HOME%/bin/gradle clean
-
-echo start clean complete . 
-
-call %GRADLE_HOME%/bin/gradle buildRelease
-
-cd build
-rd /q /s libs
-
-rd /q /s tmp
-
-cd ..
-
-set END_TIME="%date:~0,10% %time:~0,2%:%time:~3,5%"
-
-echo Build Release start at %START_TIME%  complete at %END_TIME%.
-
-pause

+ 0 - 34
config/release_standard.bat

@@ -1,34 +0,0 @@
-call setEnvVars.bat
-
-set START_TIME="%date:~0,10% %time:~0,2%:%time:~3,5%"
-echo start time %START_TIME%
-call %JAVA_HOME%/bin/java -version
-
-call %GRADLE_HOME%/bin/gradle -version
-
-call %GRADLE_HOME%/bin/gradle -q projects
-
-echo start clean . . .
-
-call %GRADLE_HOME%/bin/gradle clean
-
-echo start clean complete . 
-
-call %GRADLE_HOME%/bin/gradle buildRelease
-
-call %GRADLE_HOME%/bin/gradle copyDepJars
-
-call %GRADLE_HOME%/bin/gradle buildReleaseCopy
-
-cd build
-rd /q /s libs
-
-rd /q /s tmp
-
-cd ..
-
-set END_TIME="%date:~0,10% %time:~0,2%:%time:~3,5%"
-
-echo Build Release start at %START_TIME%  complete at %END_TIME%.
-
-pause

+ 2 - 1
maxkey-webs/maxkey-web-maxkey/config/build_docker.gradle

@@ -48,7 +48,6 @@ dependencies {
    	
    	implementation project(":maxkey-protocols:maxkey-protocol-authorize")
    	implementation project(":maxkey-protocols:maxkey-protocol-cas")
-	implementation project(":maxkey-protocols:maxkey-protocol-desktop")
 	implementation project(":maxkey-protocols:maxkey-protocol-extendapi")
 	implementation project(":maxkey-protocols:maxkey-protocol-formbased")
 	implementation project(":maxkey-protocols:maxkey-protocol-tokenbased")
@@ -56,4 +55,6 @@ dependencies {
    	implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0")
 	implementation project(":maxkey-protocols:maxkey-protocol-jwt")
 	
+	implementation project(":maxkey-webs:maxkey-web-resources")
+	
 }

+ 2 - 1
maxkey-webs/maxkey-web-maxkey/config/build_jar.gradle

@@ -47,11 +47,12 @@ dependencies {
    	
    	implementation project(":maxkey-protocols:maxkey-protocol-authorize")
    	implementation project(":maxkey-protocols:maxkey-protocol-cas")
-	implementation project(":maxkey-protocols:maxkey-protocol-desktop")
 	implementation project(":maxkey-protocols:maxkey-protocol-extendapi")
 	implementation project(":maxkey-protocols:maxkey-protocol-formbased")
 	implementation project(":maxkey-protocols:maxkey-protocol-tokenbased")
    	implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0")
 	implementation project(":maxkey-protocols:maxkey-protocol-jwt")
+	
+	implementation project(":maxkey-webs:maxkey-web-resources")
 }

+ 2 - 1
maxkey-webs/maxkey-web-maxkey/config/build_standard.gradle

@@ -15,11 +15,12 @@ dependencies {
    	
    	implementation project(":maxkey-protocols:maxkey-protocol-authorize")
    	implementation project(":maxkey-protocols:maxkey-protocol-cas")
-	implementation project(":maxkey-protocols:maxkey-protocol-desktop")
 	implementation project(":maxkey-protocols:maxkey-protocol-extendapi")
 	implementation project(":maxkey-protocols:maxkey-protocol-formbased")
 	implementation project(":maxkey-protocols:maxkey-protocol-tokenbased")
    	implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0")
 	implementation project(":maxkey-protocols:maxkey-protocol-jwt")
+	
+	implementation project(":maxkey-webs:maxkey-web-resources")
 }

+ 11 - 2
maxkey-webs/maxkey-web-mgt/config/build_docker.gradle

@@ -44,10 +44,19 @@ dependencies {
 	implementation project(":maxkey-authentications:maxkey-authentication-core")
 	implementation project(":maxkey-authentications:maxkey-authentication-captcha")
 	implementation project(":maxkey-authentications:maxkey-authentication-otp")
-   	
+	
    	implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
+   	
+   	//identity
    	implementation project(":maxkey-identitys:maxkey-identity-scim")   
-   	implementation project(":maxkey-identitys:maxkey-identity-rest")
+   	implementation project(":maxkey-identitys:maxkey-identity-rest")	
+   	implementation project(":maxkey-identitys:maxkey-synchronizers")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-activedirectory")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-ldap")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-workweixin")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-dingding")
+   	
+   	implementation project(":maxkey-webs:maxkey-web-resources")
    	
 }

+ 11 - 2
maxkey-webs/maxkey-web-mgt/config/build_jar.gradle

@@ -47,9 +47,18 @@ dependencies {
 	implementation project(":maxkey-authentications:maxkey-authentication-core")
 	implementation project(":maxkey-authentications:maxkey-authentication-captcha")
 	implementation project(":maxkey-authentications:maxkey-authentication-otp")
-   	
+	
    	implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
+   	
+   	//identity
    	implementation project(":maxkey-identitys:maxkey-identity-scim")   
-   	implementation project(":maxkey-identitys:maxkey-identity-rest")
+   	implementation project(":maxkey-identitys:maxkey-identity-rest")	
+   	implementation project(":maxkey-identitys:maxkey-synchronizers")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-activedirectory")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-ldap")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-workweixin")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-dingding")
+   	
+   	implementation project(":maxkey-webs:maxkey-web-resources")
 }

+ 9 - 0
maxkey-webs/maxkey-web-mgt/config/build_standard.gradle

@@ -14,6 +14,15 @@ dependencies {
 	
    	implementation project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
+   	
+   	//identity
    	implementation project(":maxkey-identitys:maxkey-identity-scim")   
    	implementation project(":maxkey-identitys:maxkey-identity-rest")	
+   	implementation project(":maxkey-identitys:maxkey-synchronizers")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-activedirectory")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-ldap")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-workweixin")
+   	implementation project(":maxkey-identitys:maxkey-synchronizers-dingding")
+   	
+   	implementation project(":maxkey-webs:maxkey-web-resources")
 }

+ 1 - 1
release_cnf_docker.bat

@@ -6,6 +6,6 @@ call %JAVA_HOME%/bin/java -version
 
 call %GRADLE_HOME%/bin/gradle -version
 
-call %GRADLE_HOME%/bin/gradle -b build_cnf_docker.gradle
+call %GRADLE_HOME%/bin/gradle configBuildDocker -b build_cnf.gradle
 
 pause

+ 1 - 1
release_cnf_jar.bat

@@ -6,6 +6,6 @@ call %JAVA_HOME%/bin/java -version
 
 call %GRADLE_HOME%/bin/gradle -version
 
-call %GRADLE_HOME%/bin/gradle -b build_cnf_jar.gradle
+call %GRADLE_HOME%/bin/gradle configBuildJar -b build_cnf.gradle
 
 pause

+ 1 - 1
release_cnf_standard.bat

@@ -6,6 +6,6 @@ call %JAVA_HOME%/bin/java -version
 
 call %GRADLE_HOME%/bin/gradle -version
 
-call %GRADLE_HOME%/bin/gradle -b build_cnf_standard.gradle
+call %GRADLE_HOME%/bin/gradle configBuildStd -b build_cnf.gradle
 
 pause