group = "dev.fyloz.trial.colorrecipesexplorer" version = "1.3.1" description = "Color Recipes Explorer" plugins { id("java") id("org.jetbrains.kotlin.jvm") version "1.4.0" id("org.jetbrains.dokka") version "1.4.0-rc" id("com.leobia.gradle.sassjavacompiler") version "0.2.1" id("io.freefair.lombok") version "5.2.1" id("org.springframework.boot") version "2.3.4.RELEASE" } repositories { jcenter() mavenCentral() } dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom")) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.11.3") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit") implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.1.4.RELEASE") implementation("org.springframework.boot:spring-boot-starter-jdbc:2.1.4.RELEASE") implementation("org.springframework.boot:spring-boot-starter-thymeleaf:2.1.4.RELEASE") implementation("org.springframework.boot:spring-boot-starter-web:2.1.4.RELEASE") implementation("org.apache.poi:poi-ooxml:4.1.0") implementation("org.apache.pdfbox:pdfbox:2.0.4") implementation("org.springframework.boot:spring-boot-configuration-processor:2.1.4.RELEASE") implementation("org.springframework.boot:spring-boot-devtools:2.1.4.RELEASE") implementation("com.atlassian.commonmark:commonmark:0.13.1") implementation("commons-io:commons-io:2.6") implementation("org.springframework:spring-test:5.1.6.RELEASE") implementation("org.springframework.boot:spring-boot-test-autoconfigure:2.1.4.RELEASE") implementation("org.mockito:mockito-core:2.23.4") implementation("org.junit.jupiter:junit-jupiter-api:5.3.2") runtimeOnly("com.h2database:h2:1.4.199") testImplementation("org.springframework.boot:spring-boot-starter-test:2.1.6.RELEASE") compileOnly("org.projectlombok:lombok:1.18.10") } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } tasks.register("buildFrontend") { exec { if (System.getProperty("os.name").toLowerCase().contains("windows")) { commandLine("cmd", "/c", "cd src/main/frontend && npm run-script build && xcopy dist\\color-recipes-explorer-frontend\\* ..\\resources\\angular\\static\\ /Y /E ") } else { commandLine("sh", "-c", "cd src/main/frontend && npm run-script build && cp -r dist/color-recipes-explorer-frontend/* ../resources/angular/static/") } } } tasks.register("buildAngular") { dependsOn("buildFrontend") dependsOn(tasks.build) } tasks.register("bootJarAngular") { dependsOn("buildFrontend") dependsOn(tasks.bootJar) } tasks.test { useJUnitPlatform() testLogging { events("passed", "skipped", "failed") } } tasks.withType { options.compilerArgs.addAll(arrayOf("--release", "11")) } tasks.withType { kotlinOptions.jvmTarget = "11" } tasks.dokkaHtml { outputDirectory = "$buildDir/dokka" }