I have an issue, I want to work with kotlin-springboot-r2dbc-liquibase
So, when put my build.gradle.kts like this
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.springframework.boot") version "3.0.6"
id("io.spring.dependency-management") version "1.1.0"
id("org.graalvm.buildtools.native") version "0.9.20"
id("org.jetbrains.kotlin.plugin.jpa") version "1.8.21"
kotlin("jvm") version "1.7.22"
kotlin("plugin.spring") version "1.7.22"
}
group = "com.abahafart.kotlin.template"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_17
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jdbc")
// implementation("org.springframework.boot:spring-boot-starter-data-r2dbc")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.liquibase:liquibase-core")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("mysql:mysql-connector-java:8.0.32")
// runtimeOnly("dev.miku:r2dbc-mysql:0.8.2.RELEASE")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "17"
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3333/library?tlsVersion=TLSv1.2
username: mysql
password: mysqlpw
# r2dbc:
# url: r2dbc:mysql://localhost:3333/library?tlsVersion=TLSv1.2
# username: mysql
# password: mysqlpw
# pool:
# enabled: true
# initial-size: 1
# max-size: 20
It works that I excpected, connection to database and liquibase work
But if I want to work with r2dbc and liquibase with my gradle and application look like this, liquibase does not work, but connection to database works
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.springframework.boot") version "3.0.6"
id("io.spring.dependency-management") version "1.1.0"
id("org.graalvm.buildtools.native") version "0.9.20"
id("org.jetbrains.kotlin.plugin.jpa") version "1.8.21"
kotlin("jvm") version "1.7.22"
kotlin("plugin.spring") version "1.7.22"
}
group = "com.abahafart.kotlin.template"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_17
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
repositories {
mavenCentral()
}
dependencies {
// implementation("org.springframework.boot:spring-boot-starter-data-jdbc")
implementation("org.springframework.boot:spring-boot-starter-data-r2dbc")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.liquibase:liquibase-core")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("mysql:mysql-connector-java:8.0.32")
runtimeOnly("dev.miku:r2dbc-mysql:0.8.2.RELEASE")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "17"
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
spring:
# datasource:
# url: jdbc:mysql://localhost:3333/library?tlsVersion=TLSv1.2
# username: mysql
# password: mysqlpw
r2dbc:
url: r2dbc:mysql://localhost:3333/library?tlsVersion=TLSv1.2
username: mysql
password: mysqlpw
pool:
enabled: true
initial-size: 1
max-size: 20
So, my question here is: What dependecy I need to liquibase work? Why does liquibase work with jdbc and not with r2dbc?
Thanks