我正在尝试使用 sbt-native-packager 制作 scala 项目的 Docker Image。我必须添加 sbt-native-packager 插件。为此,我在 book_system_task/project/plugins.sbt 中创建了“plugins.sbt”文件(其中 book_system_task 是我的应用程序名称)。
plugins.sbt:
addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.4")
但是在加载 sbt 更改时,它给出以下错误:
Extracting structure failed: Build status: Error
我目前正在使用,scala-version: 2.13.1, sbt-version:1.2.8.
错误是
[error] sbt.internal.IncompatiblePluginsException: Binary incompatibility in plugins detected.
...
[error] Caused by: java.lang.NoSuchMethodError: sbt.package$.singleFileJsonFormatter()Lsjsonnew/JsonFormat;
方法
sbt.package$.singleFileJsonFormatter()
出现在sbt 1.3.0
https://github.com/sbt/sbt/blob/v1.3.0/sbt/src/main/scala/package.scala#L48
https://github.com/sbt/sbt/blob/v1.2.8/sbt/src/main/scala/package.scala
implicit val singleFileJsonFormatter: JsonFormat[File] = FileStamp.Formats.fileJsonFormatter
所以 sbt-native-packager 1.9.4 似乎与 sbt 1.2.8-二进制不兼容
在
project/build.properties
中将 sbt 升级到 1.3.0+(当前 sbt 是 1.8.2)或像您在下一个问题中所做的那样降级 sbt-native-packager Unable to make docker image using sbt-native-packager