plugins {
    id "java"
    id "application"
}

def optaplannerVersion = "9.44.0.Final"
def logbackVersion = "1.2.11"
def junitJupiterVersion = "5.9.0"
def assertjVersion = "3.24.2"

group = "org.acme"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    implementation platform("org.optaplanner:optaplanner-bom:${optaplannerVersion}")
    implementation "org.optaplanner:optaplanner-core"
    testImplementation "org.optaplanner:optaplanner-test"
    testImplementation "org.junit.jupiter:junit-jupiter:${junitJupiterVersion}"
    testImplementation "org.assertj:assertj-core:${assertjVersion}"

    runtimeOnly "ch.qos.logback:logback-classic:${logbackVersion}"
}

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

compileJava {
    options.encoding = "UTF-8"
    options.compilerArgs << "-parameters"
}

compileTestJava {
    options.encoding = "UTF-8"
}

application {
    mainClass = "org.acme.schooltimetabling.TimeTableApp"
}

test {
    // Log the test execution results.
    testLogging {
        events "passed", "skipped", "failed"
    }

    useJUnitPlatform()
}
