plugins {
    id 'java'
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'org.jetbrains.kotlin.jvm' version '1.3.31'
    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
    id "com.palantir.git-version" version "0.12.0-rc2"
    id 'com.palantir.docker' version '0.22.1'
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

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")
    }
}

bootJar {
    enabled = false
}

group = 'com.supwisdom'