浏览代码

release docker bootjar standard

release docker bootjar standard
MaxKey 4 年之前
父节点
当前提交
2b759df576

+ 4 - 10
build.gradle

@@ -29,7 +29,7 @@ configurations.all {
 	transitive = false// 为本依赖关闭依赖传递特性
 }
 
-// Apply the java plugin to add support for Java
+//add support for Java
 //apply plugin: 'java'
 allprojects {
     apply plugin: "java"
@@ -75,9 +75,6 @@ buildscript {
     repositories {
         mavenCentral()
     }
-    dependencies {
-       // classpath("org.springframework.boot:spring-boot-gradle-plugin:2.1.6.RELEASE")
-    }
 }
 
 // In this section you declare where to find the dependencies of your project
@@ -91,10 +88,7 @@ repositories {
 
 
 
-subprojects {  
-	//apply plugin: 'org.springframework.boot'
-	//apply plugin: 'io.spring.dependency-management'
-	
+subprojects {  	
 	sourceSets {
 	    main {
 	        java {
@@ -105,7 +99,8 @@ subprojects {
 	        }
 	   	 }
 	}
-   repositories {  
+	
+	repositories {  
         mavenLocal()
         maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
         maven { url "https://repo.spring.io/plugins-release/" }
@@ -458,7 +453,6 @@ task copyMaxKeyShellScript(type: Copy) {
 	into "$rootDir/build/MaxKey-v${project.version}GA/";
 }
 
-
 task buildReleaseCopy(dependsOn:['copyMaxKey','copyMaxKeyMgt','copyMaxKeyLibs','copyMaxKeyShellScript'])  {
 	//项目名
 	println  "project ReleaseCopy  ."

+ 64 - 0
build_cnf_docker.gradle

@@ -0,0 +1,64 @@
+/*
+ * 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 {
+ 
+}

+ 64 - 0
build_cnf_jar.gradle

@@ -0,0 +1,64 @@
+/*
+ * 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 {
+ 
+}

+ 64 - 0
build_cnf_standard.gradle

@@ -0,0 +1,64 @@
+/*
+ * 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 {
+ 
+}

+ 401 - 0
config/build_docker.gradle

@@ -0,0 +1,401 @@
+/*
+ * 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 "clean", "build"
+
+//Version define
+ext {
+	
+}
+
+configurations.all {
+	transitive = false// 为本依赖关闭依赖传递特性
+}
+
+//add support for Java
+//apply plugin: 'java'
+allprojects {
+    apply plugin: "java"
+    apply plugin: "eclipse"
+    //apply plugin: "pmd"
+    //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
+		}
+		
+		
+		/*
+		wtp {
+	        facet {
+	            facet name: 'jst.web', type: Facet.FacetType.fixed
+	            facet name: 'wst.jsdt.web', type: Facet.FacetType.fixed
+	            facet name: 'jst.java', type: Facet.FacetType.fixed
+	            facet name: 'jst.web', version: '3.0'
+	            facet name: 'jst.java', version: '1.7'
+	            facet name: 'wst.jsdt.web', version: '1.0'
+	        }
+	    }*/
+	}
+
+    
+}
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+}
+
+// In this section you declare where to find the dependencies of your project
+repositories {
+    // Use 'jcenter' for resolving your dependencies.
+    // You can declare any Maven/Ivy/file repository here.
+    mavenCentral()
+    jcenter()
+    
+}
+
+
+
+subprojects {  	
+	sourceSets {
+	    main {
+	        java {
+	            srcDir 'src/main/java' // 指定源码目录
+	        }
+	        resources {
+	            srcDir 'src/main/resources' //资源目录
+	        }
+	   	 }
+	}
+	
+	repositories {  
+        mavenLocal()
+        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+        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 "http://jcenter.bintray.com" }
+        maven { url "http://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()
+        jcenter()
+    }  
+	
+	//all dependencies
+	dependencies {  
+		//for Test and Compile
+		 testCompile 'junit:junit:4.11' 
+    	 compileOnly 'junit:junit:4.11'  
+    	 testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
+    	 compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
+         testCompile group: 'org.mockito', name: 'mockito-all', version: '1.10.19'
+         testCompile group: 'xmlunit', name: 'xmlunit', version: '1.6'
+         //apache
+         compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3'
+         compile group: 'commons-codec', name: 'commons-codec', version: '1.15'
+         compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
+         compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.4'
+         //compile group: 'org.apache.commons', name: 'commons-csv', version: '1.7'
+         compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.6.0'
+         compile group: 'commons-dbutils', name: 'commons-dbutils', version: '1.7'
+         compile group: 'org.apache.commons', name: 'commons-digester3', version: '3.2'
+         compile group: 'commons-digester', name: 'commons-digester', version: '2.1'
+         compile group: 'commons-io', name: 'commons-io', version: '2.8.0'
+         compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
+         compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.11'
+         compile group: 'commons-logging', name: 'commons-logging', version: '1.2'
+         compile group: 'org.apache.commons', name: 'commons-pool2', version: '2.6.2'
+         compile group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1'
+         compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.4'
+         compile group: 'org.apache.commons', name: 'commons-email', version: '1.5'
+         compile group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.13'
+         compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
+         compile group: 'velocity', name: 'velocity-dep', version: '1.4'
+         compile group: 'org.freemarker', name: 'freemarker', version: '2.3.31'
+         compile group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '3.0.1'
+         compile group: 'org.apache.commons', name: 'commons-compress', version: '1.20'
+         compile group: 'org.apache.poi', name: 'poi', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-ooxml', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-ooxml-schemas', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}"
+         //compile group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: '0.3.9'
+         
+		//logs
+         compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}"
+         compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
+         compile group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
+         compile group: 'org.jboss.logging', name: 'jboss-logging', version: '3.4.1.Final'
+		 //spring
+         compile group: 'org.springframework', name: 'spring-aop', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-beans', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-core', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context-indexer', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-expression', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-jms', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-orm', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-tx', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-web', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}"
+		 testCompile group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
+		 
+		 //kafka support
+		 // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+		 compile group: 'org.apache.kafka', name: 'kafka-clients', version: '2.6.1'
+		 // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
+		 compile group: 'org.springframework.kafka', name: 'spring-kafka', version: '2.6.6'
+		 // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
+		 compile group: 'org.springframework.retry', name: 'spring-retry', version: '1.3.0'
+		 
+         //spring-security
+         compile group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}"
+         compile group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}"
+         compile group: 'org.springframework.security', name: 'spring-security-crypto', version: "${springSecurityVersion}"
+         //srpingboot
+         compile group: 'org.springframework.boot', name: 'spring-boot', version: "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-actuator', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
+         testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:  "${springBootVersion}"
+         //spring-data
+         compile group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
+         compile group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}"
+		 compile group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
+         //spring-session
+         compile group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
+         compile group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
+         
+         compile group: 'org.springframework.plugin', name: 'spring-plugin-core', version: '2.0.0.RELEASE'
+         compile group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: '2.0.0.RELEASE'
+         
+         //saml 
+         compile group: 'org.opensaml', name: 'opensaml', version: '2.6.6'
+         compile group: 'org.opensaml', name: 'openws', version: '1.5.6'
+         compile group: 'org.opensaml', name: 'xmltooling', version: '1.4.6'
+         compile group: 'net.shibboleth.utilities', name: 'java-support', version: '7.5.1'
+		 //jose-jwt
+         compile group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '9.4.1'
+         compile group: 'net.jcip', name: 'jcip-annotations', version: '1.0'
+         compile group: 'net.minidev', name: 'json-smart', version: '2.3'
+         compile group: 'net.minidev', name: 'asm', version: '1.0.2'
+         //oauth third party JustAuth
+         compile group: 'com.xkcoding.http', name: 'simple-http', version: '1.0.3'
+         compile group: 'me.zhyd.oauth', name: 'JustAuth', version: '1.15.9'
+         //common
+         compile group: 'org.javassist', name: 'javassist', version: '3.23.0-GA'
+         compile group: 'org.owasp.esapi', name: 'esapi', version: '2.2.0.0'
+         compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2'
+         // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
+         // for mybatis-jpa-extra
+         compile group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1'
+         compile group: 'javax.activation', name: 'activation', version: '1.1.1'
+         compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
+         compile group: 'javax.transaction', name: 'jta', version: '1.1'
+         compile group: 'javax.transaction', name: 'javax.transaction-api', version: '1.3'
+         compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
+         compile group: 'javax.xml', name: 'jsr173', version: '1.0'
+		 compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.2'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: '2.3.2'
+         //crypto
+         compile group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'org.bouncycastle', name: 'bcprov-ext-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'com.google.crypto.tink', name: 'tink', version: '1.4.0'
+         //kaptcha
+         compile group: 'com.jhlabs', name: 'filters', version: '2.0.235-1'
+         compile group: 'com.github.penggle', name: 'kaptcha', version: '2.3.2'
+         //json
+         compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}"
+         
+         compile group: 'com.fasterxml', name: 'classmate', version: '1.5.0'
+		 compile group: 'com.alibaba', name: 'fastjson', version: '1.2.74'
+         //reactive
+         compile group: 'org.reactivestreams', name: 'reactive-streams', version: '1.0.2'
+         compile group: 'io.projectreactor', name: 'reactor-core', version: '3.2.10.RELEASE'
+         compile group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: '0.2'
+         //quartz
+         compile group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.2'
+		 //database
+		 compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
+		 compile group: 'com.alibaba', name: 'druid', version: '1.2.5'
+		 compile group: 'com.alibaba', name: 'druid-spring-boot-starter', version: '1.2.5'
+         compile group: 'redis.clients', name: 'jedis', version: '3.4.1'
+         compile group: 'org.ehcache', name: 'ehcache', version: '3.9.0'
+		 //mybatis
+         compile group: 'org.mybatis', name: 'mybatis', version: '3.5.6'
+         compile group: 'org.mybatis', name: 'mybatis-spring', version: '2.0.6'
+		 //hibernate
+         compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}"
+         compile group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}"
+         compile group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}"
+         //usefull
+         compile group: 'joda-time', name: 'joda-time', version: '2.10.9'
+         compile group: 'org.yaml', name: 'snakeyaml', version: '1.26'
+         compile group: 'net.sourceforge.nekohtml', name: 'nekohtml', version: '1.9.22'
+         compile group: 'org.jdom', name: 'jdom', version: '2.0.2'
+         compile group: 'com.google.zxing', name: 'core', version: '3.4.1'
+         compile group: 'com.google.guava', name: 'guava', version: '30.1-jre'
+         compile group: 'ognl', name: 'ognl', version: '3.2.14'
+         compile group: 'cglib', name: 'cglib', version: '3.3.0'
+         compile group: 'org.ow2.asm', name: 'asm', version: '7.3.1'
+         compile group: 'aopalliance', name: 'aopalliance', version: '1.0'
+         compile group: 'org.aspectj', name: 'aspectjtools', version: '1.9.4'
+         compile group: 'dom4j', name: 'dom4j', version: '1.6.1'
+		 compile group: 'xalan', name: 'serializer', version: '2.7.2'
+		 compile group: 'xml-resolver', name: 'xml-resolver', version: '1.2'
+		 compile group: 'org.apache.santuario', name: 'xmlsec', version: '1.5.8'
+		 compile group: 'org.ogce', name: 'xpp3', version: '1.1.6'
+		 compile group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.4.10'
+		 compile group: 'org.passay', name: 'passay', version: '1.6.0'
+		 compile group: 'io.micrometer', name: 'micrometer-core', version: '1.6.4'
+		 compile group: 'org.latencyutils', name: 'LatencyUtils', version: '2.0.3'
+		 compile group: 'org.codehaus.woodstox', name: 'stax2-api', version: '4.2.1'
+		 		 
+		 //docs
+		 compile group: 'org.mapstruct', name: 'mapstruct', version: '1.4.1.Final'
+		 compile group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
+		 compile group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
+		 //springfox
+		 compile group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
+		 //knife4j
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
+		 		 
+    	 //local jars
+    	 compile fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
+    	 //阿里云
+    	 compile group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: '4.5.1'
+    	 //腾讯云
+    	 compile group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: '3.1.33'
+    	 
+    	 //tomcat embed Core Tomcat implementation
+    	 compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: '9.0.43'
+    	 //JULI logging implementation for embedded Tomcat
+    	 compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: '8.5.2'
+    }
+    
+    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 buildRelease(dependsOn:['build'])  {
+	//项目名
+	println  "project " + project.name + " environment ..."
+	//项目所在的group version 版本号
+	println "project group " + project.group +" , version " + project.version
+	//项目相对路径
+	println "project path " + project.path
+	//项目的绝对路径
+	println "project projectDir " + project.projectDir
+	//项目的build文件绝对路径
+	println "project buildDir " + project.buildDir
+	println 'Build MaxKey '+project.name +' '
+}
+
+// In this section you declare the dependencies for your production and test code
+dependencies {
+ 
+}

+ 406 - 0
config/build_jar.gradle

@@ -0,0 +1,406 @@
+/*
+ * 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 "clean", "build"
+
+//Version define
+ext {
+	
+}
+
+configurations.all {
+	transitive = false// 为本依赖关闭依赖传递特性
+}
+
+//add support for Java
+//apply plugin: 'java'
+allprojects {
+    apply plugin: "java"
+    apply plugin: "eclipse"
+    //apply plugin: "pmd"
+    //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
+		}
+		
+		
+		/*
+		wtp {
+	        facet {
+	            facet name: 'jst.web', type: Facet.FacetType.fixed
+	            facet name: 'wst.jsdt.web', type: Facet.FacetType.fixed
+	            facet name: 'jst.java', type: Facet.FacetType.fixed
+	            facet name: 'jst.web', version: '3.0'
+	            facet name: 'jst.java', version: '1.7'
+	            facet name: 'wst.jsdt.web', version: '1.0'
+	        }
+	    }*/
+	}
+
+    
+}
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+}
+
+// In this section you declare where to find the dependencies of your project
+repositories {
+    // Use 'jcenter' for resolving your dependencies.
+    // You can declare any Maven/Ivy/file repository here.
+    mavenCentral()
+    jcenter()
+    
+}
+
+
+
+subprojects {  	
+	sourceSets {
+	    main {
+	        java {
+	            srcDir 'src/main/java' // 指定源码目录
+	        }
+	        resources {
+	            srcDir 'src/main/resources' //资源目录
+	        }
+	   	 }
+	}
+	
+	repositories {  
+        mavenLocal()
+        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+        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 "http://jcenter.bintray.com" }
+        maven { url "http://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()
+        jcenter()
+    }  
+	
+	//all dependencies
+	dependencies {  
+		//for Test and Compile
+		 testCompile 'junit:junit:4.11' 
+    	 compileOnly 'junit:junit:4.11'  
+    	 testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
+    	 compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
+         testCompile group: 'org.mockito', name: 'mockito-all', version: '1.10.19'
+         testCompile group: 'xmlunit', name: 'xmlunit', version: '1.6'
+         //apache
+         compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3'
+         compile group: 'commons-codec', name: 'commons-codec', version: '1.15'
+         compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
+         compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.4'
+         //compile group: 'org.apache.commons', name: 'commons-csv', version: '1.7'
+         compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.6.0'
+         compile group: 'commons-dbutils', name: 'commons-dbutils', version: '1.7'
+         compile group: 'org.apache.commons', name: 'commons-digester3', version: '3.2'
+         compile group: 'commons-digester', name: 'commons-digester', version: '2.1'
+         compile group: 'commons-io', name: 'commons-io', version: '2.8.0'
+         compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
+         compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.11'
+         compile group: 'commons-logging', name: 'commons-logging', version: '1.2'
+         compile group: 'org.apache.commons', name: 'commons-pool2', version: '2.6.2'
+         compile group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1'
+         compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.4'
+         compile group: 'org.apache.commons', name: 'commons-email', version: '1.5'
+         compile group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.13'
+         compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
+         compile group: 'velocity', name: 'velocity-dep', version: '1.4'
+         compile group: 'org.freemarker', name: 'freemarker', version: '2.3.31'
+         compile group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '3.0.1'
+         compile group: 'org.apache.commons', name: 'commons-compress', version: '1.20'
+         compile group: 'org.apache.poi', name: 'poi', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-ooxml', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-ooxml-schemas', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}"
+         //compile group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: '0.3.9'
+         
+		//logs
+         compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}"
+         compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
+         compile group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
+         compile group: 'org.jboss.logging', name: 'jboss-logging', version: '3.4.1.Final'
+		 //spring
+         compile group: 'org.springframework', name: 'spring-aop', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-beans', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-core', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context-indexer', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-expression', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-jms', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-orm', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-tx', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-web', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}"
+		 testCompile group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
+		 
+		 //kafka support
+		 // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+		 compile group: 'org.apache.kafka', name: 'kafka-clients', version: '2.6.1'
+		 // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
+		 compile group: 'org.springframework.kafka', name: 'spring-kafka', version: '2.6.6'
+		 // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
+		 compile group: 'org.springframework.retry', name: 'spring-retry', version: '1.3.0'
+		 
+         //spring-security
+         compile group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}"
+         compile group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}"
+         compile group: 'org.springframework.security', name: 'spring-security-crypto', version: "${springSecurityVersion}"
+         //srpingboot
+         compile group: 'org.springframework.boot', name: 'spring-boot', version: "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-actuator', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
+         testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:  "${springBootVersion}"
+         //spring-data
+         compile group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
+         compile group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}"
+		 compile group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
+         //spring-session
+         compile group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
+         compile group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
+         
+         compile group: 'org.springframework.plugin', name: 'spring-plugin-core', version: '2.0.0.RELEASE'
+         compile group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: '2.0.0.RELEASE'
+         
+         //saml 
+         compile group: 'org.opensaml', name: 'opensaml', version: '2.6.6'
+         compile group: 'org.opensaml', name: 'openws', version: '1.5.6'
+         compile group: 'org.opensaml', name: 'xmltooling', version: '1.4.6'
+         compile group: 'net.shibboleth.utilities', name: 'java-support', version: '7.5.1'
+		 //jose-jwt
+         compile group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '9.4.1'
+         compile group: 'net.jcip', name: 'jcip-annotations', version: '1.0'
+         compile group: 'net.minidev', name: 'json-smart', version: '2.3'
+         compile group: 'net.minidev', name: 'asm', version: '1.0.2'
+         //oauth third party JustAuth
+         compile group: 'com.xkcoding.http', name: 'simple-http', version: '1.0.3'
+         compile group: 'me.zhyd.oauth', name: 'JustAuth', version: '1.15.9'
+         //common
+         compile group: 'org.javassist', name: 'javassist', version: '3.23.0-GA'
+         compile group: 'org.owasp.esapi', name: 'esapi', version: '2.2.0.0'
+         compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2'
+         // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
+         // for mybatis-jpa-extra
+         compile group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1'
+         compile group: 'javax.activation', name: 'activation', version: '1.1.1'
+         compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
+         compile group: 'javax.transaction', name: 'jta', version: '1.1'
+         compile group: 'javax.transaction', name: 'javax.transaction-api', version: '1.3'
+         compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
+         compile group: 'javax.xml', name: 'jsr173', version: '1.0'
+		 compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.2'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: '2.3.2'
+         //crypto
+         compile group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'org.bouncycastle', name: 'bcprov-ext-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'com.google.crypto.tink', name: 'tink', version: '1.4.0'
+         //kaptcha
+         compile group: 'com.jhlabs', name: 'filters', version: '2.0.235-1'
+         compile group: 'com.github.penggle', name: 'kaptcha', version: '2.3.2'
+         //json
+         compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}"
+         
+         compile group: 'com.fasterxml', name: 'classmate', version: '1.5.0'
+		 compile group: 'com.alibaba', name: 'fastjson', version: '1.2.74'
+         //reactive
+         compile group: 'org.reactivestreams', name: 'reactive-streams', version: '1.0.2'
+         compile group: 'io.projectreactor', name: 'reactor-core', version: '3.2.10.RELEASE'
+         compile group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: '0.2'
+         //quartz
+         compile group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.2'
+		 //database
+		 compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
+		 compile group: 'com.alibaba', name: 'druid', version: '1.2.5'
+		 compile group: 'com.alibaba', name: 'druid-spring-boot-starter', version: '1.2.5'
+         compile group: 'redis.clients', name: 'jedis', version: '3.4.1'
+         compile group: 'org.ehcache', name: 'ehcache', version: '3.9.0'
+		 //mybatis
+         compile group: 'org.mybatis', name: 'mybatis', version: '3.5.6'
+         compile group: 'org.mybatis', name: 'mybatis-spring', version: '2.0.6'
+		 //hibernate
+         compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}"
+         compile group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}"
+         compile group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}"
+         //usefull
+         compile group: 'joda-time', name: 'joda-time', version: '2.10.9'
+         compile group: 'org.yaml', name: 'snakeyaml', version: '1.26'
+         compile group: 'net.sourceforge.nekohtml', name: 'nekohtml', version: '1.9.22'
+         compile group: 'org.jdom', name: 'jdom', version: '2.0.2'
+         compile group: 'com.google.zxing', name: 'core', version: '3.4.1'
+         compile group: 'com.google.guava', name: 'guava', version: '30.1-jre'
+         compile group: 'ognl', name: 'ognl', version: '3.2.14'
+         compile group: 'cglib', name: 'cglib', version: '3.3.0'
+         compile group: 'org.ow2.asm', name: 'asm', version: '7.3.1'
+         compile group: 'aopalliance', name: 'aopalliance', version: '1.0'
+         compile group: 'org.aspectj', name: 'aspectjtools', version: '1.9.4'
+         compile group: 'dom4j', name: 'dom4j', version: '1.6.1'
+		 compile group: 'xalan', name: 'serializer', version: '2.7.2'
+		 compile group: 'xml-resolver', name: 'xml-resolver', version: '1.2'
+		 compile group: 'org.apache.santuario', name: 'xmlsec', version: '1.5.8'
+		 compile group: 'org.ogce', name: 'xpp3', version: '1.1.6'
+		 compile group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.4.10'
+		 compile group: 'org.passay', name: 'passay', version: '1.6.0'
+		 compile group: 'io.micrometer', name: 'micrometer-core', version: '1.6.4'
+		 compile group: 'org.latencyutils', name: 'LatencyUtils', version: '2.0.3'
+		 compile group: 'org.codehaus.woodstox', name: 'stax2-api', version: '4.2.1'
+		 		 
+		 //docs
+		 compile group: 'org.mapstruct', name: 'mapstruct', version: '1.4.1.Final'
+		 compile group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
+		 compile group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
+		 //springfox
+		 compile group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
+		 //knife4j
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
+		 		 
+    	 //local jars
+    	 compile fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
+    	 //阿里云
+    	 compile group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: '4.5.1'
+    	 //腾讯云
+    	 compile group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: '3.1.33'
+    	 
+    	 //tomcat embed Core Tomcat implementation
+    	 compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: '9.0.43'
+    	 //JULI logging implementation for embedded Tomcat
+    	 compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: '8.5.2'
+    }
+    
+    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 buildRelease(dependsOn:['build','jar'])  {
+		//项目名
+		println  "project " + project.name + " environment ..."
+	}
+
+}
+
+task buildRelease(dependsOn:['build'])  {
+	//项目名
+	println  "project " + project.name + " environment ..."
+	//项目所在的group version 版本号
+	println "project group " + project.group +" , version " + project.version
+	//项目相对路径
+	println "project path " + project.path
+	//项目的绝对路径
+	println "project projectDir " + project.projectDir
+	//项目的build文件绝对路径
+	println "project buildDir " + project.buildDir
+	println 'Build MaxKey '+project.name +' '
+}
+
+// In this section you declare the dependencies for your production and test code
+dependencies {
+ 
+}

+ 480 - 0
config/build_standard.gradle

@@ -0,0 +1,480 @@
+/*
+ * 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 "clean", "build"
+
+//Version define
+ext {
+	
+}
+
+configurations.all {
+	transitive = false// 为本依赖关闭依赖传递特性
+}
+
+//add support for Java
+//apply plugin: 'java'
+allprojects {
+    apply plugin: "java"
+    apply plugin: "eclipse"
+    //apply plugin: "pmd"
+    //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
+		}
+		
+		
+		/*
+		wtp {
+	        facet {
+	            facet name: 'jst.web', type: Facet.FacetType.fixed
+	            facet name: 'wst.jsdt.web', type: Facet.FacetType.fixed
+	            facet name: 'jst.java', type: Facet.FacetType.fixed
+	            facet name: 'jst.web', version: '3.0'
+	            facet name: 'jst.java', version: '1.7'
+	            facet name: 'wst.jsdt.web', version: '1.0'
+	        }
+	    }*/
+	}
+
+    
+}
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+}
+
+// In this section you declare where to find the dependencies of your project
+repositories {
+    // Use 'jcenter' for resolving your dependencies.
+    // You can declare any Maven/Ivy/file repository here.
+    mavenCentral()
+    jcenter()
+    
+}
+
+
+
+subprojects {  	
+	sourceSets {
+	    main {
+	        java {
+	            srcDir 'src/main/java' // 指定源码目录
+	        }
+	        resources {
+	            srcDir 'src/main/resources' //资源目录
+	        }
+	   	 }
+	}
+	
+	repositories {  
+        mavenLocal()
+        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+        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 "http://jcenter.bintray.com" }
+        maven { url "http://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()
+        jcenter()
+    }  
+	
+	//all dependencies
+	dependencies {  
+		//for Test and Compile
+		 testCompile 'junit:junit:4.11' 
+    	 compileOnly 'junit:junit:4.11'  
+    	 testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
+    	 compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
+         testCompile group: 'org.mockito', name: 'mockito-all', version: '1.10.19'
+         testCompile group: 'xmlunit', name: 'xmlunit', version: '1.6'
+         //apache
+         compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3'
+         compile group: 'commons-codec', name: 'commons-codec', version: '1.15'
+         compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
+         compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.4'
+         //compile group: 'org.apache.commons', name: 'commons-csv', version: '1.7'
+         compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.6.0'
+         compile group: 'commons-dbutils', name: 'commons-dbutils', version: '1.7'
+         compile group: 'org.apache.commons', name: 'commons-digester3', version: '3.2'
+         compile group: 'commons-digester', name: 'commons-digester', version: '2.1'
+         compile group: 'commons-io', name: 'commons-io', version: '2.8.0'
+         compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
+         compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.11'
+         compile group: 'commons-logging', name: 'commons-logging', version: '1.2'
+         compile group: 'org.apache.commons', name: 'commons-pool2', version: '2.6.2'
+         compile group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1'
+         compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.4'
+         compile group: 'org.apache.commons', name: 'commons-email', version: '1.5'
+         compile group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
+         compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.13'
+         compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
+         compile group: 'velocity', name: 'velocity-dep', version: '1.4'
+         compile group: 'org.freemarker', name: 'freemarker', version: '2.3.31'
+         compile group: 'org.apache.xmlbeans', name: 'xmlbeans', version: '3.0.1'
+         compile group: 'org.apache.commons', name: 'commons-compress', version: '1.20'
+         compile group: 'org.apache.poi', name: 'poi', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-ooxml', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-ooxml-schemas', version: "${poiVersion}"
+         compile group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}"
+         //compile group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: '0.3.9'
+         
+		//logs
+         compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}"
+         compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}"
+		 compile group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}"
+         compile group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
+         compile group: 'org.jboss.logging', name: 'jboss-logging', version: '3.4.1.Final'
+		 //spring
+         compile group: 'org.springframework', name: 'spring-aop', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-beans', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-core', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context-indexer', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-expression', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-jms', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-orm', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-tx', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-web', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}"
+         compile group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}"
+         //compile group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}"
+		 testCompile group: 'org.springframework', name: 'spring-test', version: "${springVersion}"
+		 
+		 //kafka support
+		 // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients
+		 compile group: 'org.apache.kafka', name: 'kafka-clients', version: '2.6.1'
+		 // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka
+		 compile group: 'org.springframework.kafka', name: 'spring-kafka', version: '2.6.6'
+		 // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry
+		 compile group: 'org.springframework.retry', name: 'spring-retry', version: '1.3.0'
+		 
+         //spring-security
+         compile group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}"
+         compile group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}"
+         compile group: 'org.springframework.security', name: 'spring-security-crypto', version: "${springSecurityVersion}"
+         //srpingboot
+         compile group: 'org.springframework.boot', name: 'spring-boot', version: "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-actuator', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:  "${springBootVersion}"
+         compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
+         testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:  "${springBootVersion}"
+         //spring-data
+         compile group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
+         compile group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}"
+		 compile group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}"
+         //spring-session
+         compile group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
+         compile group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
+         
+         compile group: 'org.springframework.plugin', name: 'spring-plugin-core', version: '2.0.0.RELEASE'
+         compile group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: '2.0.0.RELEASE'
+         
+         //saml 
+         compile group: 'org.opensaml', name: 'opensaml', version: '2.6.6'
+         compile group: 'org.opensaml', name: 'openws', version: '1.5.6'
+         compile group: 'org.opensaml', name: 'xmltooling', version: '1.4.6'
+         compile group: 'net.shibboleth.utilities', name: 'java-support', version: '7.5.1'
+		 //jose-jwt
+         compile group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '9.4.1'
+         compile group: 'net.jcip', name: 'jcip-annotations', version: '1.0'
+         compile group: 'net.minidev', name: 'json-smart', version: '2.3'
+         compile group: 'net.minidev', name: 'asm', version: '1.0.2'
+         //oauth third party JustAuth
+         compile group: 'com.xkcoding.http', name: 'simple-http', version: '1.0.3'
+         compile group: 'me.zhyd.oauth', name: 'JustAuth', version: '1.15.9'
+         //common
+         compile group: 'org.javassist', name: 'javassist', version: '3.23.0-GA'
+         compile group: 'org.owasp.esapi', name: 'esapi', version: '2.2.0.0'
+         compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2'
+         // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
+         // for mybatis-jpa-extra
+         compile group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1'
+         compile group: 'javax.activation', name: 'activation', version: '1.1.1'
+         compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
+         compile group: 'javax.transaction', name: 'jta', version: '1.1'
+         compile group: 'javax.transaction', name: 'javax.transaction-api', version: '1.3'
+         compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
+         compile group: 'javax.xml', name: 'jsr173', version: '1.0'
+		 compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.2'
+		 compile group: 'com.sun.xml.bind', name: 'jaxb-xjc',  version: '2.3.2'
+         //crypto
+         compile group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'org.bouncycastle', name: 'bcprov-ext-jdk15on', version: "${bouncycastleVersion}"
+         compile group: 'com.google.crypto.tink', name: 'tink', version: '1.4.0'
+         //kaptcha
+         compile group: 'com.jhlabs', name: 'filters', version: '2.0.235-1'
+         compile group: 'com.github.penggle', name: 'kaptcha', version: '2.3.2'
+         //json
+         compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}"
+         compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}"
+         
+         compile group: 'com.fasterxml', name: 'classmate', version: '1.5.0'
+		 compile group: 'com.alibaba', name: 'fastjson', version: '1.2.74'
+         //reactive
+         compile group: 'org.reactivestreams', name: 'reactive-streams', version: '1.0.2'
+         compile group: 'io.projectreactor', name: 'reactor-core', version: '3.2.10.RELEASE'
+         compile group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: '0.2'
+         //quartz
+         compile group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.2'
+		 //database
+		 compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
+		 compile group: 'com.alibaba', name: 'druid', version: '1.2.5'
+		 compile group: 'com.alibaba', name: 'druid-spring-boot-starter', version: '1.2.5'
+         compile group: 'redis.clients', name: 'jedis', version: '3.4.1'
+         compile group: 'org.ehcache', name: 'ehcache', version: '3.9.0'
+		 //mybatis
+         compile group: 'org.mybatis', name: 'mybatis', version: '3.5.6'
+         compile group: 'org.mybatis', name: 'mybatis-spring', version: '2.0.6'
+		 //hibernate
+         compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}"
+         compile group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}"
+         compile group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}"
+         //usefull
+         compile group: 'joda-time', name: 'joda-time', version: '2.10.9'
+         compile group: 'org.yaml', name: 'snakeyaml', version: '1.26'
+         compile group: 'net.sourceforge.nekohtml', name: 'nekohtml', version: '1.9.22'
+         compile group: 'org.jdom', name: 'jdom', version: '2.0.2'
+         compile group: 'com.google.zxing', name: 'core', version: '3.4.1'
+         compile group: 'com.google.guava', name: 'guava', version: '30.1-jre'
+         compile group: 'ognl', name: 'ognl', version: '3.2.14'
+         compile group: 'cglib', name: 'cglib', version: '3.3.0'
+         compile group: 'org.ow2.asm', name: 'asm', version: '7.3.1'
+         compile group: 'aopalliance', name: 'aopalliance', version: '1.0'
+         compile group: 'org.aspectj', name: 'aspectjtools', version: '1.9.4'
+         compile group: 'dom4j', name: 'dom4j', version: '1.6.1'
+		 compile group: 'xalan', name: 'serializer', version: '2.7.2'
+		 compile group: 'xml-resolver', name: 'xml-resolver', version: '1.2'
+		 compile group: 'org.apache.santuario', name: 'xmlsec', version: '1.5.8'
+		 compile group: 'org.ogce', name: 'xpp3', version: '1.1.6'
+		 compile group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.4.10'
+		 compile group: 'org.passay', name: 'passay', version: '1.6.0'
+		 compile group: 'io.micrometer', name: 'micrometer-core', version: '1.6.4'
+		 compile group: 'org.latencyutils', name: 'LatencyUtils', version: '2.0.3'
+		 compile group: 'org.codehaus.woodstox', name: 'stax2-api', version: '4.2.1'
+		 		 
+		 //docs
+		 compile group: 'org.mapstruct', name: 'mapstruct', version: '1.4.1.Final'
+		 compile group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
+		 compile group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
+		 compile group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
+		 //springfox
+		 compile group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
+		 compile group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
+		 //knife4j
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
+		 compile group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
+		 		 
+    	 //local jars
+    	 compile fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
+    	 //阿里云
+    	 compile group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: '4.5.1'
+    	 //腾讯云
+    	 compile group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: '3.1.33'
+    	 
+    	 //tomcat embed Core Tomcat implementation
+    	 compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: '9.0.43'
+    	 //JULI logging implementation for embedded Tomcat
+    	 compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: '8.5.2'
+    }
+    
+    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','copyjar2Release'])  {
+		//项目名
+		println  "project " + project.name + " environment ..."
+	}
+}
+
+//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/maxkey_lib"];
+		//遍历数组,调用createDir闭包,创建目录
+		
+        paths.forEach(){path->
+            File dir=new File(path);
+            if (!dir.exists()){
+                print("create "+path+"\n")
+                dir.mkdirs();
+            }
+        };
+        
+		println  "copy Dep Jars to $rootDir/build/MaxKey-v${project.version}GA/maxkey_lib"
+		
+		from configurations.runtime
+		into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_lib";
+	}
+}
+
+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/";
+}
+
+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 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/maxkey_lib";
+}
+
+task copyMaxKeyShellScript(type: Copy) {
+	from "$rootDir/shellscript"
+	into "$rootDir/build/MaxKey-v${project.version}GA/";
+}
+
+task buildReleaseCopy(dependsOn:['copyMaxKey','copyMaxKeyMgt','copyMaxKeyLibs','copyMaxKeyShellScript'])  {
+	//项目名
+	println  "project ReleaseCopy  ."
+
+}
+
+task buildRelease(dependsOn:['build'])  {
+	//项目名
+	println  "project " + project.name + " environment ..."
+	//项目所在的group version 版本号
+	println "project group " + project.group +" , version " + project.version
+	//项目相对路径
+	println "project path " + project.path
+	//项目的绝对路径
+	println "project projectDir " + project.projectDir
+	//项目的build文件绝对路径
+	println "project buildDir " + project.buildDir
+	println 'Build MaxKey '+project.name +' '
+
+}
+
+// In this section you declare the dependencies for your production and test code
+dependencies {
+ 
+}

+ 32 - 0
config/release_docker.bat

@@ -0,0 +1,32 @@
+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

+ 30 - 0
config/release_jar.bat

@@ -0,0 +1,30 @@
+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

+ 34 - 0
config/release_standard.bat

@@ -0,0 +1,34 @@
+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

+ 6 - 75
maxkey-web-manage/build.gradle

@@ -1,88 +1,19 @@
-buildscript {
-	repositories {
-		jcenter()
-	}
-	dependencies {
-		//springboot jar
-		//classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
-	}
-}
-
 description = "maxkey-web-manage"
 
-// Apply the java plugin to add support for Java
+//add support for Java
 apply plugin: 'java'
 
-//springboot jar
-/*
-apply plugin: 'io.spring.dependency-management'
-
-plugins {
-	id 'org.springframework.boot' version "${springBootVersion}"
-}
-
-bootJar {
-	dependsOn jar
-	baseName = 'maxkey-mgt-boot'
-    version = "${project.version}-ga"
-    mainClass = 'org.maxkey.MaxKeyMgtApplication'
-	manifest {
-	        attributes(
-						"Implementation-Title": project.name,
-	                	"Implementation-Vendor": project.vendor,
-	                	"Created-By": project.author,
-	                	"Implementation-Date": java.time.ZonedDateTime.now(),
-	                	"Implementation-Version": project.version
-	           )
-	    }	
-}
-*/
-
-/*
-plugins {
-	id 'com.google.cloud.tools.jib' version "${jibGradlePluginVersion}"
-	id 'org.springframework.boot' version "${springBootVersion}"
-}
-
-jib {
-	from {
-		image = 'adoptopenjdk:11-jre-openj9'
-	}
-	to {
-		image = "maxkey/maxkey-mgt-docker"
-		tags = ["${project.version}".toString(), 'latest']
-	}
-	container {
-		jvmFlags = ['-Dfile.encoding=utf-8', '-Dserver.port=9521']
-		ports = ['9521']
-	}
-}
-*/
-
 dependencies {
 	compile project(":maxkey-common")
 	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+	
 	compile project(":maxkey-authentications:maxkey-authentication-core")
 	compile project(":maxkey-authentications:maxkey-authentication-captcha")
 	compile project(":maxkey-authentications:maxkey-authentication-otp")
-   	compile project(":maxkey-persistence")
+	
    	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
    	compile project(":maxkey-identitys:maxkey-identity-scim")   
-   	compile project(":maxkey-identitys:maxkey-identity-rest")
-   	
-}
-
-/*
-eclipse {
-
-	wtp {
-		component {
-      
-      	//define context path, default to project folder name
-      	contextPath = 'maxkey-mgt'
-      
-		}	
-    
-	}
-}*/
+   	compile project(":maxkey-identitys:maxkey-identity-rest")	
+}

+ 54 - 0
maxkey-web-manage/config/build_docker.gradle

@@ -0,0 +1,54 @@
+buildscript {
+	repositories {
+		jcenter()
+		maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+	}
+}
+//docker
+plugins {
+	id 'java'
+	id 'com.google.cloud.tools.jib' version "${jibGradlePluginVersion}"
+	id 'org.springframework.boot' version "${springBootVersion}"
+}
+
+
+apply plugin: 'com.google.cloud.tools.jib'
+
+description = "maxkey-web-manage"
+
+jib {
+	from {
+		image = 'openjdk:8-jre-alpine'
+	}
+	to {
+		//https://registry.hub.docker.com/repository/docker/maxkeytop/maxkey-mgt
+		image = "maxkeytop/maxkey-mgt"
+		tags = ["${project.version}".toString(), 'latest']
+		auth {
+			username = "maxkeytop"
+			password = "password"
+		}
+		
+	}
+	container {
+		mainClass 	= "org.maxkey.MaxKeyMgtApplication"
+		jvmFlags 	= ['-Dfile.encoding=utf-8', '-Dserver.port=9527','-Duser.timezone=Asia/Shanghai']
+		ports	 	= ['9527']
+	}
+}
+
+dependencies {
+	compile project(":maxkey-common")
+	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+	
+	compile project(":maxkey-authentications:maxkey-authentication-core")
+	compile project(":maxkey-authentications:maxkey-authentication-captcha")
+	compile project(":maxkey-authentications:maxkey-authentication-otp")
+   	
+   	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
+   	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
+   	compile project(":maxkey-identitys:maxkey-identity-scim")   
+   	compile project(":maxkey-identitys:maxkey-identity-rest")
+   	
+}

+ 56 - 0
maxkey-web-manage/config/build_jar.gradle

@@ -0,0 +1,56 @@
+buildscript {
+	repositories {
+		jcenter()
+		maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+	}
+	dependencies {
+		//springboot jar
+		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
+	}
+}
+
+plugins {
+	id 'org.springframework.boot' version "${springBootVersion}"
+	id "io.spring.dependency-management" version "1.0.11.RELEASE"
+}
+
+description = "maxkey-web-manage"
+
+//springboot jar
+apply plugin: 'io.spring.dependency-management'
+
+//add support for Java
+apply plugin: 'java'
+
+
+
+bootJar {
+	dependsOn jar
+	baseName = 'maxkey-mgt-boot'
+    version = "${project.version}-ga"
+    mainClass = 'org.maxkey.MaxKeyMgtApplication'
+	manifest {
+	        attributes(
+						"Implementation-Title": project.name,
+	                	"Implementation-Vendor": project.vendor,
+	                	"Created-By": project.author,
+	                	"Implementation-Date": java.time.ZonedDateTime.now(),
+	                	"Implementation-Version": project.version
+	           )
+	    }	
+}
+
+dependencies {
+	compile project(":maxkey-common")
+	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+	
+	compile project(":maxkey-authentications:maxkey-authentication-core")
+	compile project(":maxkey-authentications:maxkey-authentication-captcha")
+	compile project(":maxkey-authentications:maxkey-authentication-otp")
+   	
+   	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
+   	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
+   	compile project(":maxkey-identitys:maxkey-identity-scim")   
+   	compile project(":maxkey-identitys:maxkey-identity-rest")
+}

+ 19 - 0
maxkey-web-manage/config/build_standard.gradle

@@ -0,0 +1,19 @@
+description = "maxkey-web-manage"
+
+//add support for Java
+apply plugin: 'java'
+
+dependencies {
+	compile project(":maxkey-common")
+	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+	
+	compile project(":maxkey-authentications:maxkey-authentication-core")
+	compile project(":maxkey-authentications:maxkey-authentication-captcha")
+	compile project(":maxkey-authentications:maxkey-authentication-otp")
+	
+   	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
+   	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")   
+   	compile project(":maxkey-identitys:maxkey-identity-scim")   
+   	compile project(":maxkey-identitys:maxkey-identity-rest")	
+}

+ 1 - 80
maxkey-web-maxkey/build.gradle

@@ -1,65 +1,8 @@
-buildscript {
-	repositories {
-		jcenter()
-	}
-	dependencies {
-		//springboot jar
-		//classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
-	}
-}
-
 description = "maxkey-web-maxkey"
 
-// Apply the java plugin to add support for Java
+//add support for Java
 apply plugin: 'java'
 
-//springboot jar
-/*
-apply plugin: 'io.spring.dependency-management'
-
-plugins {
-	id 'org.springframework.boot' version "${springBootVersion}"
-}
-
-bootJar {
-	dependsOn jar
-	baseName = 'maxkey-boot'
-    version = "${project.version}-ga"
-    mainClass = 'org.maxkey.MaxKeyApplication'
-	manifest {
-	        attributes(
-						"Implementation-Title": project.name,
-	                	"Implementation-Vendor": project.vendor,
-	                	"Created-By": project.author,
-	                	"Implementation-Date": java.time.ZonedDateTime.now(),
-	                	"Implementation-Version": project.version
-	           )
-	    }	
-}
-*/
-
-
-/*
-plugins {
-	id 'com.google.cloud.tools.jib' version "${jibGradlePluginVersion}"
-	id 'org.springframework.boot' version "${springBootVersion}"
-}
-
-jib {
-	from {
-		image = 'adoptopenjdk:11-jre-openj9'
-	}
-	to {
-		image = "maxkey/maxkey-docker"
-		tags = ["${project.version}".toString(), 'latest']
-	}
-	container {
-		jvmFlags = ['-Dfile.encoding=utf-8', '-Dserver.port=443']
-		ports = ['443']
-	}
-}
-*/
-
 dependencies {
 	compile project(":maxkey-common")
 	compile project(":maxkey-core")
@@ -70,7 +13,6 @@ dependencies {
    	compile project(":maxkey-authentications:maxkey-authentication-captcha")
    	compile project(":maxkey-authentications:maxkey-authentication-otp")
    	
-	
    	compile project(":maxkey-protocols:maxkey-protocol-authorize")
    	compile project(":maxkey-protocols:maxkey-protocol-cas")
 	compile project(":maxkey-protocols:maxkey-protocol-desktop")
@@ -80,25 +22,4 @@ dependencies {
    	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
    	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")
 	compile project(":maxkey-protocols:maxkey-protocol-jwt")
-	
 }
-/*
-//For Eclipse IDE only
-eclipse {
-
-	wtp {
-		component {
-      
-      	//define context path, default to project folder name
-      	contextPath = '/maxkey'
-      
-		}	
-    
-	}
-}
-
-tomcat {
-    httpPort = 80
-    contextPath = '/maxkey'
-
-}*/

+ 59 - 0
maxkey-web-maxkey/config/build_docker.gradle

@@ -0,0 +1,59 @@
+buildscript {
+	repositories {
+		jcenter()
+		maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+	}
+}
+
+plugins {
+	id 'java'
+	id 'com.google.cloud.tools.jib' version "${jibGradlePluginVersion}"
+	id 'org.springframework.boot' version "${springBootVersion}"
+}
+
+apply plugin: 'com.google.cloud.tools.jib'
+
+description = "maxkey-web-maxkey"
+
+//docker
+jib {
+	from {
+		image = 'openjdk:8-jre-alpine'
+	}
+	to {
+		//https://registry.hub.docker.com/repository/docker/maxkeytop/maxkey
+		image = "maxkeytop/maxkey"
+		tags = ["${project.version}".toString(), 'latest']
+		auth {
+			username = "maxkeytop"
+			password = "password"
+		}
+	}
+	container {
+		mainClass 	= "org.maxkey.MaxKeyApplication"
+		jvmFlags 	= ['-Dfile.encoding=utf-8', '-Dserver.port=443','-Duser.timezone=Asia/Shanghai']
+		ports 		= ['443']
+	}
+}
+
+dependencies {
+	compile project(":maxkey-common")
+	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+   	
+   	compile project(":maxkey-authentications:maxkey-authentication-core")
+   	compile project(":maxkey-authentications:maxkey-authentication-social")
+   	compile project(":maxkey-authentications:maxkey-authentication-captcha")
+   	compile project(":maxkey-authentications:maxkey-authentication-otp")
+   	
+   	compile project(":maxkey-protocols:maxkey-protocol-authorize")
+   	compile project(":maxkey-protocols:maxkey-protocol-cas")
+	compile project(":maxkey-protocols:maxkey-protocol-desktop")
+	compile project(":maxkey-protocols:maxkey-protocol-extendapi")
+	compile project(":maxkey-protocols:maxkey-protocol-formbased")
+	compile project(":maxkey-protocols:maxkey-protocol-tokenbased")
+   	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
+   	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")
+	compile project(":maxkey-protocols:maxkey-protocol-jwt")
+	
+}

+ 57 - 0
maxkey-web-maxkey/config/build_jar.gradle

@@ -0,0 +1,57 @@
+buildscript {
+	repositories {
+		jcenter()
+		maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
+	}
+	dependencies {
+		//springboot jar
+		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
+	}
+}
+
+plugins {
+	id 'java'
+	id "io.spring.dependency-management" version "1.0.11.RELEASE"
+	id 'org.springframework.boot' version "${springBootVersion}"
+}
+
+apply plugin: 'io.spring.dependency-management'
+
+description = "maxkey-web-maxkey"
+
+bootJar {
+	dependsOn jar
+	baseName = 'maxkey-boot'
+    version = "${project.version}-ga"
+    mainClass = 'org.maxkey.MaxKeyApplication'
+	manifest {
+	        attributes(
+						"Implementation-Title": project.name,
+	                	"Implementation-Vendor": project.vendor,
+	                	"Created-By": project.author,
+	                	"Implementation-Date": java.time.ZonedDateTime.now(),
+	                	"Implementation-Version": project.version
+	           )
+	    }	
+}
+
+dependencies {
+	compile project(":maxkey-common")
+	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+   	
+   	compile project(":maxkey-authentications:maxkey-authentication-core")
+   	compile project(":maxkey-authentications:maxkey-authentication-social")
+   	compile project(":maxkey-authentications:maxkey-authentication-captcha")
+   	compile project(":maxkey-authentications:maxkey-authentication-otp")
+   	
+   	compile project(":maxkey-protocols:maxkey-protocol-authorize")
+   	compile project(":maxkey-protocols:maxkey-protocol-cas")
+	compile project(":maxkey-protocols:maxkey-protocol-desktop")
+	compile project(":maxkey-protocols:maxkey-protocol-extendapi")
+	compile project(":maxkey-protocols:maxkey-protocol-formbased")
+	compile project(":maxkey-protocols:maxkey-protocol-tokenbased")
+   	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
+   	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")
+	compile project(":maxkey-protocols:maxkey-protocol-jwt")
+}

+ 25 - 0
maxkey-web-maxkey/config/build_standard.gradle

@@ -0,0 +1,25 @@
+description = "maxkey-web-maxkey"
+
+//add support for Java
+apply plugin: 'java'
+
+dependencies {
+	compile project(":maxkey-common")
+	compile project(":maxkey-core")
+	compile project(":maxkey-persistence")
+   	
+   	compile project(":maxkey-authentications:maxkey-authentication-core")
+   	compile project(":maxkey-authentications:maxkey-authentication-social")
+   	compile project(":maxkey-authentications:maxkey-authentication-captcha")
+   	compile project(":maxkey-authentications:maxkey-authentication-otp")
+   	
+   	compile project(":maxkey-protocols:maxkey-protocol-authorize")
+   	compile project(":maxkey-protocols:maxkey-protocol-cas")
+	compile project(":maxkey-protocols:maxkey-protocol-desktop")
+	compile project(":maxkey-protocols:maxkey-protocol-extendapi")
+	compile project(":maxkey-protocols:maxkey-protocol-formbased")
+	compile project(":maxkey-protocols:maxkey-protocol-tokenbased")
+   	compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
+   	compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")
+	compile project(":maxkey-protocols:maxkey-protocol-jwt")
+}

+ 11 - 0
release_cnf_docker.bat

@@ -0,0 +1,11 @@
+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 -b build_cnf_docker.gradle
+
+pause

+ 11 - 0
release_cnf_jar.bat

@@ -0,0 +1,11 @@
+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 -b build_cnf_jar.gradle
+
+pause

+ 11 - 0
release_cnf_standard.bat

@@ -0,0 +1,11 @@
+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 -b build_cnf_standard.gradle
+
+pause