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