documentation-website/Writerside/snippets/exposed-migrations/build.gradle.kts (37 lines of code) (raw):
plugins {
// Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
alias(libs.plugins.jvm)
// Apply the application plugin to add support for building a CLI application in Java.
application
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// Use the Kotlin JUnit 5 integration.
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
// Use the JUnit 5 integration.
testImplementation(libs.junit.jupiter.engine)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
// This dependency is used by the application.
implementation(libs.guava)
implementation(libs.exposed.core)
implementation(libs.exposed.jdbc)
implementation(libs.exposed.kotlin.datetime)
implementation(libs.exposed.migration.core)
implementation(libs.exposed.migration.jdbc)
implementation(libs.h2)
implementation(libs.flyway)
}
// Apply a specific Java toolchain to ease working on different environments.
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
application {
// Define the main class for the application.
mainClass = "org.example.AppKt"
}
tasks.named<Test>("test") {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}
tasks.register<JavaExec>("generateMigrationScript") {
group = "application"
description = "Generate a migration script in the path exposed-migrations/src/main/kotlin/org/example/migrations"
classpath = sourceSets.main.get().runtimeClasspath
mainClass = "org.example.GenerateMigrationScriptKt"
}