优化 gradle
diff --git a/build.gradle b/build.gradle
index a4cd5b1..3bf4e38 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,40 +1,146 @@
 plugins {
     id 'java'
-    id 'org.springframework.boot' version '2.1.6.RELEASE'
-    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
+    id 'org.springframework.boot' version '2.1.6.RELEASE' apply false
     id 'org.jetbrains.kotlin.jvm' version '1.3.31'
     id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31' apply false
     id "com.palantir.git-version" version "0.12.0-rc2"
-    id 'com.palantir.docker' version '0.22.1'
+    id 'com.palantir.docker' version '0.22.1' apply false
 }
 
+group = 'com.supwisdom'
+
 allprojects {
     repositories {
         jcenter()
         mavenCentral()
     }
-}
+    ext {
+        set('junit_jupiter_version', "5.5.2")
+        set("junit_platform_version", "1.5.2")
+        set("mockitoVersion", "3.1.0")
+    }
 
-ext {
-    set('junit_jupiter_version', "5.5.2")
-    set("junit_platform_version", "1.5.2")
-    set("mockitoVersion", "3.1.0")
-}
-
-subprojects {
     apply plugin: 'java'
-    version = '1.0'
-    dependencies {
-        testImplementation("org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}")
-        testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junit_jupiter_version}")
-        testRuntimeOnly("org.junit.platform:junit-platform-launcher:${junit_platform_version}")
-        testImplementation("io.mockk:mockk:1.9.3")
-        testImplementation("org.hamcrest:hamcrest:2.1")
+    apply plugin: 'io.spring.dependency-management'
+
+    sourceCompatibility = JavaVersion.VERSION_1_8
+    targetCompatibility = JavaVersion.VERSION_1_8
+
+    compileKotlin {
+        kotlinOptions {
+            freeCompilerArgs = ['-Xjsr305=strict']
+            jvmTarget = jdkVersion
+        }
+    }
+
+    compileTestKotlin {
+        kotlinOptions {
+            freeCompilerArgs = ['-Xjsr305=strict']
+            jvmTarget = jdkVersion
+        }
+    }
+
+    version = gitVersion()
+    ext {
+        details = versionDetails()
     }
 }
 
-bootJar {
-    enabled = false
+
+subprojects {
+
+    ext {
+        set('springCloudVersion', "Hoxton.RELEASE")
+    }
+
+    dependencies {
+        ext {
+            slf4jVersion = '1.7.26'
+            beanutilsVersion = '1.9.3'
+            codecVersion = '1.13'
+            lang3Version = '3.9'
+            commonCodecVersion = '1.12'
+            lombokVersion = '1.18.8'
+            javaELVersion = '3.0.0'
+            shedlockVersion = '2.5.0'
+            jose4jVersion = '0.6.5'
+            jcabiManifestsVersion = '1.1'
+            kotlnLogVersion = '1.6.26'
+            slf4jVersion = '1.7.26'
+            gsonVersion = '2.8.5'
+            dbcpVersion = '1.4'
+            log4jVersion = '1.2.17'
+            alibabFastjsonVerison = '1.2.60'
+            beanutilsVersion = '1.9.3'
+            alipaySDKVersion = '3.7.110.ALL'
+            lombokVersion = '1.18.8'
+            resetAssuredVersion = '3.3.0'
+            hamcrestVersion = '2.1'
+            mockkVersion = '1.9.3'
+            commonNetVersion = '3.6'
+            kaptchaVersion = '2.3.2'
+            jerseyClientVersion = '1.19'
+            javaxWSRSVersion = '2.1.1'
+            dom4jVersion = '2.1.1'
+            springSocialVersion = '1.1.6.RELEASE'
+            springKafkaVersion = '2.2.8.RELEASE'
+            postgresVersion = '42.2.5'
+        }
+        implementation "org.jetbrains.kotlin:kotlin-reflect"
+        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
+
+        implementation "org.springframework.boot:spring-boot-starter-data-jpa"
+        implementation "org.springframework.boot:spring-boot-starter-data-redis"
+        implementation "org.springframework.boot:spring-boot-starter-validation"
+
+        implementation "javax.validation:validation-api"
+        implementation "com.jcabi:jcabi-manifests:${jcabiManifestsVersion}"
+        implementation "org.slf4j:slf4j-parent:${slf4jVersion}"
+        implementation "org.slf4j:slf4j-api:${slf4jVersion}"
+        implementation "org.postgresql:postgresql:${postgresVersion}"
+        implementation "io.github.microutils:kotlin-logging:${kotlnLogVersion}"
+        implementation "org.slf4j:slf4j-parent:${slf4jVersion}"
+        implementation "com.google.code.gson:gson:${gsonVersion}"
+        implementation "commons-dbcp:commons-dbcp:${dbcpVersion}"
+        implementation "commons-codec:commons-codec:${commonCodecVersion}"
+        implementation "log4j:log4j:${log4jVersion}"
+        implementation "com.alibaba:fastjson:${alibabFastjsonVerison}"
+        implementation "com.fasterxml.jackson.module:jackson-module-kotlin"
+
+
+        annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
+        annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
+        compileOnly "org.projectlombok:lombok:${lombokVersion}"
+
+        //    implementation "javax.el:javax.el-api:${javaELVersion}"
+        //    implementation "javax.servlet:javax.servlet-api:4.0.1"
+//        testImplementation 'org.springframework:spring-test'
+//        testImplementation 'org.springframework.boot:spring-boot-test'
+//    implementation "javax.servlet:jstl:1.2"
+//    implementation "taglibs:standard:1.1.2"
+        testImplementation "org.springframework.boot:spring-boot-starter-test"
+        testImplementation "org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}"
+        testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junit_jupiter_version}"
+        testRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}"
+        testImplementation "io.mockk:mockk:${mockkVersion}"
+        testImplementation "org.hamcrest:hamcrest:${hamcrestVersion}"
+        testImplementation "io.rest-assured:rest-assured:${resetAssuredVersion}"
+        testImplementation "io.rest-assured:spring-mock-mvc:${resetAssuredVersion}"
+    }
+
+    test {
+        useJUnitPlatform()
+        testLogging {
+            events "passed", "skipped", "failed"
+        }
+    }
+
+    dependencyManagement {
+        imports {
+            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
+        }
+    }
 }
 
-group = 'com.supwisdom'
\ No newline at end of file
+