如何将 snakeyaml 依赖添加到 sbt-liquibase 插件?

问题描述 投票:0回答:1

这是一个简单的scala项目。我在 plugins.sbt 中添加了

sbt-liquibase
。我的 liquibase 变更日志采用 yaml 格式。根据https://docs.liquibase.com/concepts/changelogs/yaml-format.html
snakeyaml
应该用于yaml格式的变更日志。因为,我是 sbt-liquibase 插件,我找不到应该在哪里声明 sbt-liquibase 插件的依赖关系。

//plugins.sbt
addSbtPlugin("com.permutive" % "sbt-liquibase" % "1.2.0")

build.sbt 是

//build.sbt
lazy val root = (project in file("."))
  .settings(
    name                        := "diy-quill",
    libraryDependencies ++=Seq(
      sqlite,

    ),
    liquibaseChangelog          := java.nio.file.Path.of("src/main/resources/db/changelog.yaml").toFile(),
    liquibaseDriver             := "org.sqlite.JDBC",
    liquibaseUrl                := "jdbc:sqlite:./target/shopkart.db",
    liquibaseUsername           := "",
    liquibasePassword           := ""
  )
  .enablePlugins(ScalafmtPlugin)
  .enablePlugins(SbtLiquibase)

由于

sbt-liquibase
找不到yaml解析器,我在执行任务时收到以下错误
liquibaseUpdate
.

sbt:hello-world> liquibaseUpdate
[error] stack trace is suppressed; run last liquibaseUpdate for the full output
[error] (liquibaseUpdate) liquibase.exception.UnknownChangelogFormatException: Cannot find parser that supports /home/dx/dev/play/scala-projects/diy-quill/src/main/resources/db/changelog.yaml
[error] Total time: 0 s, completed Mar 2, 2023, 4:24:04 PM

应该在哪里以及如何声明 sbt-liquibase 插件的依赖关系?

应用程序不需要snakeyaml.

但是,当liquibase changelog以xml格式表示时,不需要额外的依赖,不会出现这样的错误。

找到一个 stackoverflow 参考Sbt Plugin Add Dependency to project/build.sbt 推荐使用

compilerPlugin
。即使那样也无济于事。

scala sbt liquibase
1个回答
0
投票

在 plugins.sbt 中添加

snakeyaml
解决了这个问题。这是 project/plugins.sbt 看起来像使用 yaml 格式的 sbt-liquibase 的变更日志。

addSbtPlugin("com.permutive" % "sbt-liquibase" % "1.2.0")
libraryDependencies ++= Seq(
  "org.yaml" % "snakeyaml" % "1.33"
)
© www.soinside.com 2019 - 2024. All rights reserved.