![](/img/trans.png)
[英]How to use JPA annotations in a kotlin/multiplatform project?
[英]How to use Gradle liquibaseRuntime configuration in a Kotlin/Multiplatform project
目前,我正在將我的 Spring Boot build.gradle.kts
配置移植到 Kotlin/MP 堆棧。 我不知道如何處理liquibaseRuntime
配置的一部分。 原始配置如下所示:
// other dependencies omitted
liquibaseRuntime("org.liquibase:liquibase-core")
liquibaseRuntime("org.liquibase.ext:liquibase-hibernate5:3.8")
liquibaseRuntime(sourceSets.getByName("main").compileClasspath)
liquibaseRuntime(sourceSets.getByName("main").output)
liquibaseRuntime("org.postgresql:postgresql")
liquibaseRuntime("org.springframework.boot:spring-boot:$springBootVersion")
此配置的某些部分可能可以替換為:
sourceSets {
val jvmMain by getting {
dependencies {
configurations["liquibaseRuntime"].dependencies.addAll(listOf(
DefaultExternalModuleDependency("org.liquibase", "liquibase-core", null, "default"),
DefaultExternalModuleDependency("org.liquibase.ext", "liquibase-hibernate5", "3.8", "default"),
DefaultExternalModuleDependency("org.postgresql", "postgresql", null, "default"),
DefaultExternalModuleDependency("org.springframework.boot", "spring-boot", "2.2.4.RELEASE", "default")
// DefaultSelfResolvingDependency(configurations["compileClasspath"])
))
我被這兩個卡住了,不知道該怎么辦:
liquibaseRuntime(sourceSets.getByName("main").compileClasspath)
liquibaseRuntime(sourceSets.getByName("main").output)
他們添加了依賴 class DefaultSelfResolvingDependency
的實例(它們似乎也被一些代理包裹)。 查看 liquibase-gradle 插件代碼沒有幫助。
那么,我應該如何移植這兩個依賴項呢?
不熟悉 Liquibase Gradle 插件。 我的假設是您已通過以下方式應用插件:
plugins {
id("org.liquibase.gradle") version "2.0.2"
}
然后你應該能夠做你通常擁有的事情:
dependencies {
liquibaseRuntime("org.liquibase:liquibase-core")
liquibaseRuntime("org.liquibase.ext:liquibase-hibernate5:3.8")
liquibaseRuntime("org.postgresql:postgresql")
liquibaseRuntime("org.springframework.boot:spring-boot:$springBootVersion")
}
如果由於某種原因無法開箱即用,那么您需要通過顯式檢索configuration
的引用來幫助 Gradle 的 Kotlin DSL:
val liquibaseRuntime by configurations
dependencies {
liquibaseRuntime("org.liquibase:liquibase-core")
liquibaseRuntime("org.liquibase.ext:liquibase-hibernate5:3.8")
liquibaseRuntime(sourceSets.getByName("main").compileClasspath)
liquibaseRuntime(sourceSets.getByName("main").output)
liquibaseRuntime("org.postgresql:postgresql")
liquibaseRuntime("org.springframework.boot:spring-boot:$springBootVersion")
}
您還可以執行以下操作:
dependencies {
"liquibaseRuntime"("org.liquibase:liquibase-core")
"liquibaseRuntime"("org.liquibase.ext:liquibase-hibernate5:3.8")
// ...
}
現在這兩行對我來說沒有意義。
liquibaseRuntime(sourceSets.getByName("main").compileClasspath)
liquibaseRuntime(sourceSets.getByName("main").output)
根據DependencyHandler的 API 文檔,有某些允許的符號。 sourceSet
不是其中之一。 所以不知道在那里做什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.