allprojects {
    group 'com.gxzc.zen'
    version '1.0-SNAPSHOT'
}

buildscript {
    ext {
        kotlin_version = '1.2.21'
        spring_boot_version = '1.5.10.RELEASE'
        junit_version = '4.12'
        commons_io_version = '2.5'
        commons_lang3_version = '3.5'
        commons_codec_version = '1.10'
        commons_fileupload_version = '1.3.2'
        slf4j_api_version = '1.7.25'
        ehcache_version = '3.4.0'
        ehcache_core_version = '2.6.11'
        mysql_connector_version = '5.1.45'
        alidruid_version = '1.1.6'
        mybatis_plus_version = '2.1.8'
        mybatis_plus_boot_version = '1.0.5'
        activiti_starter_version = '6.0.0'
//        rabbitmq_version = '5.1.2'
        xxljob_version = '1.9.0'
        swagger_version = '2.7.0'
        fastjson_version = '1.2.44'
        pinyin4j_version = '2.5.1'
        kisso_version = '3.7.0'
        caffeine_version = '2.6.1'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version"
    }
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'kotlin'
    apply plugin: 'kotlin-spring'
    apply plugin: 'org.springframework.boot'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'

    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        // Kotlin
        compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version")
        compile("org.jetbrains.kotlin:kotlin-reflect:$kotlin_version")

        // SpringBoot Starter
        compile('org.springframework.boot:spring-boot-starter')
        compile('org.springframework.boot:spring-boot-starter-web')
        compile('org.springframework.boot:spring-boot-starter-aop')
        compile('org.springframework.boot:spring-boot-starter-amqp')
        compile('org.springframework.boot:spring-boot-starter-jta-atomikos')
        compile('org.springframework.boot:spring-boot-starter-cache')
        testCompile('org.springframework.boot:spring-boot-starter-test')

        testCompile("junit:junit:$junit_version")

        // commons
        compile("commons-io:commons-io:$commons_io_version")
        compile("org.apache.commons:commons-lang3:$commons_lang3_version")
        compile("commons-codec:commons-codec:$commons_codec_version")
        compile("commons-fileupload:commons-fileupload:$commons_fileupload_version")

        // logger
        compile("org.slf4j:slf4j-api:$slf4j_api_version")

        compile("javax.servlet:javax.servlet-api:3.1.0")
        compile("javax.servlet:servlet-api:2.5")

        // cache
        compile("com.github.ben-manes.caffeine:caffeine:$caffeine_version")
//        compile("org.ehcache:ehcache:$ehcache_version")
//        compile("net.sf.ehcache:ehcache-core:$ehcache_core_version")

        // db
        compile("mysql:mysql-connector-java:$mysql_connector_version")
        compile("com.alibaba:druid-spring-boot-starter:$alidruid_version")
        // compile("io.shardingjdbc:sharding-jdbc-core-spring-boot-starter:2.0.2")

        // mybatis-plus
        compile("com.baomidou:mybatis-plus:$mybatis_plus_version")
        compile("com.baomidou:mybatisplus-spring-boot-starter:$mybatis_plus_boot_version")

        // job
        compile("com.xuxueli:xxl-job-core:$xxljob_version")

        // swagger
        compile("io.springfox:springfox-swagger2:$swagger_version")
        compile("io.springfox:springfox-swagger-ui:$swagger_version")

        // utils
        compile("org.projectlombok:lombok:1.16.18")
//        compile("com.google.guava:guava:23.6-jre")
        compile("com.github.penggle:kaptcha:2.3.2")
        compile("com.alibaba:fastjson:$fastjson_version")
        compile("com.belerweb:pinyin4j:$pinyin4j_version")
        compile('com.github.hotchemi:khronos:0.9.0')

        // sso
        compile("com.baomidou:kisso:$kisso_version")

        // activiti
//        compile("org.activiti:activiti-spring-boot-starter-basic:$activiti_starter_version")
//        compile("org.activiti:activiti-spring-boot-starter-rest-api:$activiti_starter_version")
//        compile("org.activiti:activiti-spring-boot-starter-actuator:$activiti_starter_version")

        compile("org.apache.velocity:velocity-engine-core:2.0")

        ext.jarTree = fileTree(dir: 'libs', include: '**/*.jar')
        compile jarTree
    }

    task listJars(description: 'Display all compile jars.') << {
        configurations.compile.each { File file -> println file.name }
    }
}